javascript - addEventListener 不适用于 element.submit()

标签 javascript addeventlistener

为什么事件提交不起作用,而 $('form').submit() 起作用?

但是当在输入字段中按 Enter 时它会起作用

document.getElementById("mform1").addEventListener('submit', function(e) {
  e.preventDefault()
  alert('123')
});
<form id="mform1" name="mform1" enctype="multipart/form-data" method="post">
  <input type="text">
</form>

最佳答案

提交事件仅在用户提交表单时触发。当 JavaScript 提交它时它永远不会触发。

您可以通过显式触发事件来伪造它:

document.getElementById("mform1").addEventListener('submit', function(e) {
  e.preventDefault()
  alert('123')
});

var fake_submit = new Event("submit");
document.getElementById("mform1").dispatchEvent(fake_submit);
<form id="mform1" name="mform1" enctype="multipart/form-data" method="post">
  <input type="text">
</form>

关于javascript - addEventListener 不适用于 element.submit(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48063449/

相关文章:

javascript - 如何在 Express/Node.js 中反序列化 JSON 数据

javascript - 为什么一个组件的多个实例共享相同的状态?

javascript - 是否可以监听 selectedIndex 的变化?

Javascript addEventListener 回调逻辑

javascript - 如何动态创建多个 ul 列表?

javascript - 无法读取未定义的属性 'MessageEmbed'

javascript - Bootstrap 日期时间选择器不工作

javascript - 如何在addEventListener跨浏览器中使用e.path?

javascript - 循环内的 addEventListener 未定义 div 元素

javascript - 分为html页面、javascript页面和css页面