我试图捕获表单的
invalid
事件,但似乎没有发生?对于我的用例,我需要在表单上添加侦听器(用于异步表单验证)。因此,将侦听器附加到单个输入不是我的选择。根据规范,当一些输入无效时,表单应该触发一个invalid
事件。invalid
事件,但似乎没有发生?对于我的用例,我需要在表单上添加侦听器(用于异步表单验证)。因此,将侦听器附加到单个输入不是我的选择。根据规范,当一些输入无效时,表单应该触发一个invalid
事件。'invalid' 事件不会被“冒泡”。它将在特定的无效输入元素上触发,而不会向上传递到表单元素。 您需要在输入元素上附加侦听器。
var input = document.querySelector('form input')
input.addEventListener('invalid', (e)=>{
console.log('invalid')
});
更新的笔: https://codepen.io/theLufenk/pen/WEONBw?editors=1010
如果你想在表单层面捕获事件,你将不得不使用事件捕获。
var form = document.querySelector('form')
form.addEventListener('invalid', (e)=>{
console.log('invalid')
},true)
invalid
事件何时会在表单本身中触发? - Martin Muzatko