Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 当提交按钮名为“提交”时,为什么我的表单不提交;提交;?_Jquery_Forms - Fatal编程技术网

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];