2012-05-25 12 views
18

Wie kann ich onChange oder ein ähnliches Ereignis für alle form Elemente verwenden? Ich möchte nicht onChange für jedes Feld separat verwenden.Gesamtes Formular onChange

+0

warum nicht? Im HTML-Event könnte man immer die gleiche Funktion aufrufen, also ist es eine Sache von Copy-Pasting, wahrscheinlich nicht mehr als 20 Zeichen und Schreiben von 1 Funktion. – 11684

+1

hilft [this] (http://stackoverflow.com/questions/10546076/common-event-for-all-elements-on-for-)? –

Antwort

27

Wenn Sie jQuery verwenden, können Sie das Ereignis 10 für das Formularelement verwenden, da in jQuery das Ereignis aufblitzt.

Wenn Sie plain javascript verwenden, blubbert das Änderungsereignis nicht (zumindest nicht über den Browser). So würden Sie separat den Event-Handler zu jedem Eingabeelement anbringen müssen:

var inputs = document.getElementsByTagName("input"); 
for (i=0; i<inputs.length; i++){ 
    inputs[i].onchange = changeHandler; 
} 

(natürlich, würden Sie eine ähnliche Sache für alle auswählt und Textbereiche zu tun haben)

+0

Ausgezeichnete Antwort. – Jake

+5

Nun scheint es, dass alle gängigen Browser 'form onchange' unterstützen. – Mori

+0

@Mori - können Sie bitte auf Ihren Kommentar eingehen, welche Unterstützung gibt es jetzt für Formularwechsel? –

Verwandte Themen