jQuery – 表单不会使用jQuery提交

继续我的问题 – jQuery提交validation,最后是modal dialog?

似乎表单根本不会使用jQuery提交。 这是我非常简化的代码:

 $(document).ready(function(){ $(document).click(function() { $('#inputform').submit(); }); $("#inputform").submit(function() { alert('test'); return true; }); });  <form method="POST" action="" id="inputform">   

单击正文显示“测试”警报但不提交表单。 此外,关闭警告框后,再次单击时不会再次出现。

只需单击提交按钮本身即可显示警报,然后按预期提交表单。

对不起(我知道)一个非常愚蠢的问题,但我在这里不知所措。 TY!

问题是您已将提交按钮命名为“提交”。 把它改成其他任何东西,它都会起作用。 (还要更改id ,最好保持它们相同,尤其是因为某些浏览器问题 。)

原因:表单元素有一个名为submit的属性,您可以调用它来提交它们。 (当你在jQuery实例上调用submit时,jQuery使用它。)但是Form元素使用字段的名称接收表单中每个字段的属性,所以如果你有一个名为“submit”的字段,那么覆盖 submitfunction,这意味着您无法以编程方式提交表单。

工作示例: 实时复制 | 直播源

  

(重大变化是name="someOtherName" id="someOtherName"部分。其他更改[更改表单的操作和方法]只是因此它适用于JSbin。)

旁注:你不必return true; 在您的submit事件处理程序中,以允许表单提交。 你只需要不return false; 。 🙂