gpt4 book ai didi

javascript - 为什么 form.submit() 不会触发 "submit"事件?

转载 作者:行者123 更新时间:2023-11-28 04:46:18 29 4
gpt4 key购买 nike

我正在使用 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/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com