我正在使用 JavaScript .submit() 函数提交我的表单。
form.submit();
但是当我使用 addEventListener 来捕获我的提交事件时,它不起作用。
form.addEventListener("submit", function(event){
//codes
});
我发现 addEvenetListener 函数只会监听 onsubmit 事件而不是提交。在执行 form.submit() 时是否有任何替代解决方案来调用我的函数?
ps:出于某些原因,我需要继续使用 form.submit() 来提交我的表单,而不是使用提交按钮。
最佳答案
根据 MDN :
The form's onsubmit event handler (for example,
onsubmit="return false;"
) will not be triggered when invoking this method from Gecko-based applications. In general, it is not guaranteed to be invoked by HTML user agents.
要解决此问题,请尝试使用 dispatchEvent()
:
var form = document.querySelector('form');
form.addEventListener('submit', function () {
console.log('invoked');
return false;
});
// form.submit();
form.dispatchEvent(new Event('submit'));
<form></form>
关于javascript - 为什么 form.submit() 不会触发 "submit"事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44916298/