2012-05-25 15 views
18

onChange veya form öğelerinin tümü için benzer bir etkinliği nasıl kullanabilirim? Her alan için ayrı ayrı onChange kullanmak istemiyorum.Tüm formu onChange

+0

neden olmasın (tabii, tüm seçer ve textareas benzer bir şey yapmak gerekir): Yani ayrı ayrı giriş öğesine olay işleyicisi takmak zorunda kalacak? HTML olayında, her zaman aynı işlevi çağırabilirsiniz, bu yüzden muhtemelen 20 karakterden oluşan bir kopya yapıştırma ve 1 işlev yazma konusudur. – 11684

+1

[bu] (http://stackoverflow.com/questions/10546076/common-event-for-all-elements-on-form) yardımcı olur mu? –

cevap

27

jQuery'yi kullanıyorsanız, jQuery öğesinde olay kabarcığı olduğundan, form öğesindeki change olayını kullanabilirsiniz.

$('#formId').change(function(){...}); 

düz javascript kullanıyorsanız, değişiklik olayı değil balonu (en azından çapraz tarayıcı) yapar.

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

+0

Mükemmel cevap. – Jake

+5

Artık tüm büyük tarayıcıların form değişimini desteklediği görülüyor. – Mori

+0

@Mori - Yorumunuzu detaylandırır mısınız, lütfen şimdi onchange için hangi destek var? –