dedlfix: Noch eine Nachfrage............

Beitrag lesen

Tach!

Wir probieren es mal anders. Onchange tritt auf, wenn du das Eingabefeld verlässt. Das geht normalerweise mit Tab. Wenn du hingegen bei der Enter-Taste den Focus auf ein anderes Feld setzt (und ansonsten nichts weiter machst, außer preventDefault), müsste doch auch onchange gefeuert werden, weil du ja das Feld verlässt, zumindest wenn Änderungen drin sind.

Absolut korrekt. Nur - genau das mache ich ja derzeit nicht. Aber es entspricht meiner ursprüngliuchen Idee. Und es entspricht der Idee, die Entertaste per Script abzufangen und mit der Simmulation der Tab Taste zu ersetzen. Es müßte nichtmal die Tab-Taste sein, da es ausreicht, irgendeinem anderen Inputfeld des Formulars den focus() zu übergeben. Es müßte nicht zwingend der nächste sein. Man könnte sogar (ich spinne es mal weiter) den focus() unterm Strich im vom User gewählten Inputfeld belassen, wenn man nur vorher einmal kurz in ein anderes Feld "focussiert" und gleich zurück ins ursprüngliche Inputfeld "focussiert".

Du wirst (meines Erachtens, genau weiß ich das nicht) keinen Tastendruck simulieren können, sonst könnte man ganz gehörigen Schindluder treiben. Du kannst auch nicht dem Event-Objekt den Key-Code ändern und das Event einfach durchreichen. Die entsprechenden Felder sind read-only. Da bleibt dir wohl nur übrig, das nächste Feld selbst zu fokussieren. Wenn es immer feststeht, von welchem Feld welches andere erreicht werden soll, dann schreib das Ziel in ein data-Attribut, beispielsweise data-next-field. Das fragst du im Eventhandler ab und setzt den Fokus auf das Feld mit der darin enthaltenen ID.

dedlfix.