继续我的问题 –
jQuery on submit validation,with modal dialog at the end?
似乎表单根本不会使用jQuery提交.这是我非常简化的代码:
<script type="text/javascript"> $(document).ready(function(){ $(document).click(function() { $('#inputform').submit(); }); $("#inputform").submit(function() { alert('test'); return true; }); }); </script> <form method="POST" action="<?PHP echo CURRENT_PAGE ?>" id="inputform"> <button type="submit" name="submit" id="submit">Submit form</button> </form>
单击正文显示“测试”警报但不提交表单.此外,关闭警告框后,再次单击时不会再次出现.
只需单击提交按钮本身即可显示警报,然后按预期提交表单.
对不起(我知道)一个非常愚蠢的问题,但我在这里不知所措. TY!
解决方法
问题是您已将提交按钮命名为“提交”.把它改成其他任何东西,它都会起作用. (也改变id,最好保持它们相同,尤其是因为
some browser issues.)
原因:表单元素有一个名为submit的属性,您可以调用它来提交它们. (当你在jQuery实例上调用submit时,jQuery使用它.)但是Form元素也使用字段的名称接收表单中每个字段的属性,所以如果你有一个名为“submit”的字段,那么覆盖提交功能,这意味着您无法以编程方式提交表单.
工作示例:Live copy | Live source
<script type="text/javascript"> $(document).ready(function(){ $(document).click(function() { $('#inputform').submit(); }); $("#inputform").submit(function() { alert('test'); return true; }); }); </script> <form method="GET" action="http://jsbin.com/uwuzon" id="inputform"> <input type="text" name="foo" value="bar"> <button type="submit" name="someOtherName" id="someOtherName">Submit form</button> </form>
(重大变化是name =“someOtherName”id =“someOtherName”部分.其他更改[更改表单的操作和方法]只是因此它适用于JSbin.)
旁注:你不必返回true;在您的提交事件处理程序中,以允许表单提交.你只需要不要返回false;