Der Martin: Problem bei Setzen und Ändern des Focus

Beitrag lesen

Hallo,

Aus Formularfeldern liest du immer Strings aus - bevor du mit diesen rechnen kannst, musst du sie in Zahlen umwandeln; Stichworte parseInt/parseFloat.
[...]
Das erklärt eine ganze Menge. Mit JS arbeite ich nicht so viel. Deswegen denke ich nie daran, dass man aus Strings erst Zahlen machen mus bzw. umgekehrt...

gibt es andere Sprachen, in denen das nicht so ist?

Ich setze doch den Fokus per Script:
document.forms["odform"].elements["ver" + id].focus()
Das Problem dabei ist, dass der Fokus nicht auf das Feld gesetzt werden kann, aus dem der Fokus kommt.

Damit kann es zwar auch zusammenhängen; eine solche Einschränkung ist mir aber nur im Zusammenhang mit dem Eventhandler onblur bekannt. Der spricht an, wenn das Feld den Focus verliert. Wenn man den Focus nun in der Handlerfunktion wieder auf ebendieses Feld zurücksetzt, produziert man eine Art Deadlock - und AFAIK verhindern die meisten Browser das inzwischen.

Aber du hast hier nicht onblur, sondern onchange. Ich vermute da ein ganz anderes Problem. Ich vermute nämlich, dass der Focus in dem Moment, wo onchange reagiert, immer noch auf dem gleichen Feld liegt, und erst *nach* dem onchange wechselt.

Vielleicht solltest du den Focuswechsel erst nach einer kurzen Verzögerung auslösen, wenn die browserinterne Event-Bearbeitung fertig ist.

So long,
 Martin

--
Viele Fachleute vertreten die Ansicht, jedes Feature eines Programms, das sich nicht auf Wunsch abstellen lässt, sei ein Bug.
Außer bei Microsoft. Da ist es umgekehrt.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(