如何检测表单中所有元素上的事件?

问题描述 投票:0回答:2

如何对所有

change
元素使用
form
或类似事件?我不想对每个字段分别使用
change

javascript html forms events onchange
2个回答
158
投票

您可以在

change
元素上使用
form
事件:

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

43
投票

如果您使用 jQuery,则可以在表单元素上使用

change
事件,因为在 jQuery 中该事件会冒泡。

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

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

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

(当然,您必须对所有选择和文本区域执行类似的操作)

© www.soinside.com 2019 - 2024. All rights reserved.