如何对所有的表单元素使用
change
或类似的事件?我不想为每个字段单独使用change
。change
或类似的事件?我不想为每个字段单独使用change
。form
元素上使用 change
事件:const form = document.querySelector('form');
form.addEventListener('change', function() {
alert('Hi!');
});
form
属性可能会出现这种情况),则不会将事件冒泡到表单元素。为了适应这种情况,我们可以将事件监听器添加到document.body
,并检查event.target.form
是否与预期的表单匹配。 - Jemi Salotextarea
将不会触发表单的更改事件 :( - rodrigo-silveirachange
事件,因为在jQuery中事件会冒泡。$('#formId').change(function(){...});
如果你使用的是纯JavaScript,那么change事件不会冒泡(至少不会在跨浏览器时)。因此,你需要单独为每个输入元素附加事件处理程序:
var inputs = document.getElementsByTagName("input");
for (i=0; i<inputs.length; i++){
inputs[i].onchange = changeHandler;
}
(当然,您还需要对所有选择器和文本区域执行类似的操作)
form onchange
。 - MoriformElement.addEventListener('change', doSomething);
在所有主要的浏览器中都可以使用了。 - Mori