Buttons werden nicht richtig enabled

xanadoo

Erfahrenes Mitglied
Hallo zusammen,
ich habe ein kleines Problem mit dem enabling von meinen Buttons auf einer Page.
Auf der Page hat es (unter vielen anderen, für dieses Problem aber unwichtigen Dingen) ein Save Button der immer enabed ist, ein Eingabefeld und 2 Buttons von denen jeweils einer, abhängig vom Wert in diesem Eingabefeld, enabled werden soll.
Wenn die Seite das erste mal geladen wird, ist nur der Save-Button enabeld, man gibt einen Wert ein und dürckt auf Save. Der Wert wird gespeichert, die gleiche Seite nochmals geladen und nun sollte abhängig vom vorher eingegebenen Wert einer der beiden anderen Buttons enabeld werden.
Dies ist mit einer Methode programmiert, die beim Laden der Page ausgeführt wird:

window.setTimeout('initialize()',50);

function initialize() {
var targetBewilligtButton = getElement('bewilligtButton');
var targetVorschlagButton = getElement('vorschlagButton');

if(beantragt != '') {
if ( kompetenz <= beantragt) {
targetBewilligtButton.disabled = false;
}
else {
targetVorschlagButton.disabled = false;
}
}

Das Problem ist nun aber, dass die Buttons erst dann enabled werden, wenn ich das erste mal mit der Maus darüber gefahren bin.
Weiss jemand woran das liegen könnte?
 
Ja, das habe ich befürchtet/vermutet.
Das Problem ist, das die Seite aus XML und XSL erstellt wird. Der Generierte HTML Code ist enorm gross, unübersichtlich und somit unleserlich :(

Ich habe nur gehofft, das vieleicht jemand schon mal ähnliche Probleme hatte.

Aber es ist prinzipiell schon richtig, dass die folgende Zeile beim Aufruf sofort und nicht erst nach einem MousOver enablen sollte oder sehe ich das falsch?

var targetBewilligtButton = getElement(bewilligtButton);
targetBewilligtButton.disabled = false;

Gruss & danke
 
Aber es ist prinzipiell schon richtig, dass die folgende Zeile beim Aufruf sofort und nicht erst nach einem MousOver enablen sollte oder sehe ich das falsch?

var targetBewilligtButton = getElement(bewilligtButton);
targetBewilligtButton.disabled = false;

Ja, das sollte so sein. Hast du denn ein mouseover in den Buttons stehen, welches das bewirkt?


Weiterhin:
Dies ist mit einer Methode programmiert, die beim Laden der Page ausgeführt wird:

window.setTimeout('initialize()',50);
das verzögerte Ausführen nach 50ms bedeutet nicht unbedingt, dass die Seite schon geladen ist.
Wenn diese Anweisung nicht im Quelltext hinter den Buttons steht, könnte sie Probleme verursachen. Besser wäre stattdessen:
Code:
window.onload=initialize;
(Beachte dabei, dass dort die Klammern hinter dem Funktionsnamen fehlen...das muss so sein;))
 
So wie es aussieht stimmt etwas mit meinem StyleSheet nicht, da passieren ganz seltsame Dinge...

Ich habe nun mal zu Testzwecken die geamte Logik umgekehrt und versuche die Buttons per Javascript zu disablen anstatt zu enablen. Und siehe da, es funktioniert.

Ich belasse das nun mal so, ist zwar nicht ganz das was ich wollte, aber Hauptsache es funktioniert.

Gruss und besten dank für eure Hilfe.
 

Neue Beiträge

Zurück