首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不使用element.submit()的addEventListenter

不使用element.submit()的addEventListenter
EN

Stack Overflow用户
提问于 2018-01-02 23:18:42
回答 2查看 67关注 0票数 0

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

但当在输入字段中按enter键时,它可以正常工作

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

EN

回答 2

Stack Overflow用户

发布于 2018-01-02 23:24:34

只有当用户提交表单时,提交事件才会触发。当JavaScript提交它时,它永远不会触发。

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

代码语言:javascript
复制
document.getElementById("mform1").addEventListener('submit', function(e) {
  e.preventDefault()
  alert('123')
});

var fake_submit = new Event("submit");
document.getElementById("mform1").dispatchEvent(fake_submit);
代码语言:javascript
复制
<form id="mform1" name="mform1" enctype="multipart/form-data" method="post">
  <input type="text">
</form>

票数 4
EN

Stack Overflow用户

发布于 2018-01-02 23:27:12

仅使用jQuery:

代码语言:javascript
复制
$( "#mform1" ).submit( function( e ) {
    e.preventDefault();
    alert( "123" );
} );
代码语言:javascript
复制
<script type="text/javascript" src="//code.jquery.com/jquery-1.9.1.js"></script>
<form id="mform1" name="mform1" enctype="multipart/form-data" method="post">
  <input type="text">
</form>

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48063449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档