Php 带有多个提交按钮的jquery验证无法识别第二个提交操作

Php 带有多个提交按钮的jquery验证无法识别第二个提交操作,php,jquery,forms,jquery-validate,Php,Jquery,Forms,Jquery Validate,我正在使用jqueryvalidate插件在我的页面上验证和提交一个表单,该表单有多个提交按钮来运行不同的功能 一个提交按钮使用$post方法运行,而另一个使用标准操作方法 (如果我的术语有误,请支持我) 我遇到的问题是,如果我使用第一个按钮提交表单,然后使用第二个按钮重试,它会尝试在第二次提交时再次运行第一个操作 这是我的代码,希望能让事情变得更清楚 <form id="myForm" action="add.php"> <input type="submit" id="my

我正在使用jqueryvalidate插件在我的页面上验证和提交一个表单,该表单有多个提交按钮来运行不同的功能

一个提交按钮使用$post方法运行,而另一个使用标准操作方法

(如果我的术语有误,请支持我)

我遇到的问题是,如果我使用第一个按钮提交表单,然后使用第二个按钮重试,它会尝试在第二次提交时再次运行第一个操作

这是我的代码,希望能让事情变得更清楚

<form id="myForm" action="add.php">
<input type="submit" id="myfunction" />
<input type="submit"​ id="add" />
​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​<input type="text" name="myvalue" />
</form>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

你为什么不把代码分成两部分呢

$("#myfunction").click(function(e) {

            $("#myForm").validate({
                submitHandler: function(form) {
                    $.post('myfunctionpage.php', $("#myForm").serialize(), function(data) { });
                }
            });
        } 

$("#add").click(function(e) {
            $("#myForm").validate({
                rules: {
                    name: {
                        required: true
                    }
                }
            });
        }

您需要在$.post案例中停止表单提交。尝试从click事件处理程序返回false,这将阻止事件冒泡到表单并导致表单提交

就我个人而言,我钩住表单元素上的
submit
事件,而不是单击按钮上的事件。原因是许多用户通过将光标放在文本框中然后按enter键来提交表单。没有点击事件发生,您的代码被绕过


另外,我已经有一段时间没有使用validate插件了,但我认为您在提交表单后调用validate()时使用它是错误的。检查文档是否正确使用。

以防万一有人在找它。 在第一次提交后使用$(“#myForm”).validate().destroy()简单;以清除“表格数据”

$("#myfunction").click(function(e) {

            $("#myForm").validate({
                submitHandler: function(form) {
                    $.post('myfunctionpage.php', $("#myForm").serialize(), function(data) { });
                }
            });
        } 

$("#add").click(function(e) {
            $("#myForm").validate({
                rules: {
                    name: {
                        required: true
                    }
                }
            });
        }