为什么我的表单提交两次?

K.K*_*ith 9 php forms jquery jquery-forms-plugin double-submit-problem

因为某种原因,我的表单只需按一下按钮即可提交两次.这是我第一次使用jquery Form插件,我想jquery提交一次,表单也"自然"提交.我已经看到,补救措施是将"return false"附加到表单的onSubmit事件处理程序.我以为我在做那件事,但显然它不起作用.

有人可以帮忙吗?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>User form entry </title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script src="jquery.validate.js"></script>
<script src="jquery.passwordStrength.js"></script>
<script src="jquery.form.js"></script>
<script>

$(document).ready(function() {
    $('#signupForm').ajaxForm(function() { 
         var queryString = $('#signupForm').formSerialize(); 
         $.post('process.php', queryString);
    });
});
</script>
</head>
<body>
   <form id="signupForm" action="process.php" onsubmit="return false" method="post">
   <fieldset class="password">
          ... form goes here
   <button type="submit" name="formSubmit" value="submit">Click to submit</button>
   </form>

<div id="results"></div>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我已经尝试将onsubmit ="return false"添加到表单元素,但之后我根本没有提交.我也尝试过添加"return false".到jQuery,但后来我还有两次提交.我错过了什么?这似乎是根据jQuery Form Plugin网站的标准方法..我的表单有何不同?

(顺便说一下,只是为了清楚..我不是在谈论通过反复按下按钮连续多次提交多个表格的问题.我的问题是"一个提交按钮推送=两个提交".)

Man*_*eUK 20

$('#signupForm').ajaxForm(function() { 
            var queryString = $('#signupForm').formSerialize(); 
            $.post('process.php', queryString);

});
Run Code Online (Sandbox Code Playgroud)

这是提交两次.... ajaxForm方法一次,然后post()第二次

ajaxForm方法为你处理表单sumbission ...你不需要添加post()方法...里面的函数ajaxForm是一个回调,成功执行...

$('#signupForm').ajaxForm(function() { 
       alert("Thank you for your comment!"); 
});
Run Code Online (Sandbox Code Playgroud)

成功发布后,此代码将显示警告...这里的简单示例 - > http://jquery.malsup.com/form/

您还应该onsubmit从表单中删除该属性...

更新

如果你想显示结果......这样做:

$(document).ready(function() { 
    $('#signupForm').ajaxForm({ target: '#results' }); 
    // this will output the responseText from the submitted form to the target DOM element
});
Run Code Online (Sandbox Code Playgroud)