Jquery 当提交按钮名为“提交”时,为什么我的表单不提交;提交;?
我需要检查表单是否由用户提交,然后在随后以编程方式提交表单之前执行一些操作 所以我有这个代码:Jquery 当提交按钮名为“提交”时,为什么我的表单不提交;提交;?,jquery,forms,Jquery,Forms,我需要检查表单是否由用户提交,然后在随后以编程方式提交表单之前执行一些操作 所以我有这个代码: $('form').submit(function (e) { e.originalEvent && e.preventDefault(); //I change some things in the form here. !e.isTrigger && $(this).submit(); }); 这可以很好地工作,但是当表单提交按钮名
$('form').submit(function (e) {
e.originalEvent && e.preventDefault();
//I change some things in the form here.
!e.isTrigger && $(this).submit();
});
这可以很好地工作,但是当表单提交按钮名为“提交”时,它就不工作了
如果按钮名为“提交”,它甚至可以正常工作。(大写“S”)
我只是好奇为什么会这样
这里有一个你成为了一些古老的DOM怪癖的牺牲品。也就是说,DOM中的表单通过其各自的名称将其所有输入元素(以及按钮)作为属性公开:
<form>
<input name="foo">
</form>
不幸的是,当您有任何名为submit
的控件时,它会隐藏原始表单的提交方法
编辑:顺便说一句,我建议大家看看这些陷阱。一定是jQuery的一些怪癖,因为如果删除javascript,两个表单都可以正常工作。
var form = document.forms[0];
form.foo === document.getElementsByName('foo')[0];