整个表格onChange

时间:2012-05-25 20:16:10

标签: javascript

如何为所有onChange元素使用form或类似事件?我不想单独为每个字段使用onChange

2 个答案:

答案 0 :(得分:34)

如果您使用的是jQuery,则可以在表单元素上使用change事件,因为在jQuery中事件会冒泡。

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

如果您使用普通的javascript,则更改事件不会冒泡(至少不会跨浏览器)。因此,您必须将事件处理程序分别附加到每个输入元素:

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

(当然,你必须对所有选择和textareas做类似的事情)

答案 1 :(得分:7)

您可以在change元素上使用form事件:

var form = document.querySelector('form');
form.addEventListener('change', function() {
    alert('Hi!');
});