9

因此,由于某种原因,我的表单只需按一下按钮就提交了两次。这是我第一次使用 jquery Form 插件,我想 jquery 提交一次,并且表单也是“自然”提交的。我已经看到补救措施是在表单的 onSubmit 事件处理程序上附加一个“return false”。我以为我正在这样做,但显然它不起作用。

任何人都可以帮忙吗?

<!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>

我尝试将 onsubmit="return false" 添加到表单元素,但是我根本没有提交。我也尝试过添加“return false;” 到 jQuery,但我仍然有双重提交。我错过了什么?根据 jQuery Form Plugin 站点,这似乎是标准方法。我的表单有何不同?

(顺便说一下,要清楚一点。我不是在谈论通过反复按下按钮来提交多个连续表单的问题。我的问题是“一个提交按钮按下=两次提交”。)

4

4 回答 4

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

});

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

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

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

此代码将在成功发布后显示警报...这里的简单示例-> 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
});
于 2012-02-16T15:11:29.703 回答
0

避免使用

<button type="submit" name="formSubmit" value="submit">

所以自然你的提交按钮会做一个提交,你的 jquery 会做另一个提交

用这个

<input type="button" name="formSubmit" value="submit">
于 2012-02-16T15:13:29.143 回答
0

尝试使用这个:

onsubmit="void(0);"
于 2012-02-16T15:18:58.670 回答
-1

不要使用submit按钮。使用常规按钮。

于 2012-02-16T15:11:44.580 回答