我有这样的代码
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
$("#main_form").submit(function(){
alert("submitting");
});
$("#main_form").on("submit", function(){
alert("ON submitting");
});
$("#lnk").click(function(){
//$("#main_form").submit(); //when submitting like this - event is triggered
document.getElementById("main_form").submit(); //no submitting alerts are triggered
});
});
</script>
<h4><?php echo time(); ?></h4>
<form id="main_form" action="">
<input type="text" value="x"/>
<input type="submit" value="submit-btn"/>
</form>
<a id="lnk" href="#">test submit js</a>
当我单击提交按钮时,我有 2 个警报上升,因此触发了 onsubmit 事件,但是当我单击链接 #lnk 时,该链接必须从普通 js 中提交,例如
document.getElementById("main_form").submit();
我只收到表单提交但没有警报。但是当我取消注释通过 jquery 提交时
$("#main_form").submit();
警报又回来了。谁能解释我为什么会这样?
PS我有遗留代码以纯js提交表单,我不想更改它,所以我决定只绑定onsubmit事件并在自定义函数中执行一些检查,但我遇到了如上所述的问题