Validation Jquery验证提交程序

Validation Jquery验证提交程序,validation,button,submit,Validation,Button,Submit,我试着在这个论坛和网络上搜索答案,但如果有任何答案,他们只会告诉我做我已经尝试过的事情 所以,我的问题是:我有一个表单,它运行两个验证器,一个客户端jquery,一个服务器端php(重力表单)。一段时间以来,这一直很有效。但是,我们注意到,我们收到了大量重复的提交,因此我想在客户端验证表单后禁用submit按钮。填写并提交表单后,如果字段有效,它将运行客户端验证脚本-禁用提交按钮(以防止重复提交)-并将脚本发送到第二个验证。如果任何字段无效,验证应返回错误消息,而不是禁用提交按钮 我环顾四周,最

我试着在这个论坛和网络上搜索答案,但如果有任何答案,他们只会告诉我做我已经尝试过的事情

所以,我的问题是:我有一个表单,它运行两个验证器,一个客户端jquery,一个服务器端php(重力表单)。一段时间以来,这一直很有效。但是,我们注意到,我们收到了大量重复的提交,因此我想在客户端验证表单后禁用submit按钮。填写并提交表单后,如果字段有效,它将运行客户端验证脚本-禁用提交按钮(以防止重复提交)-并将脚本发送到第二个验证。如果任何字段无效,验证应返回错误消息,而不是禁用提交按钮

我环顾四周,最后添加了以下内容:

submitHandler: function(form) {
$(form).find(":submit").attr("disabled", true).attr("value",
"Submitting...");
form.submit();
}
到我的验证脚本的末尾

然而,结果并不像我所希望的那样。我尝试了上述各种不同的变体,但当我添加它时,脚本根本不会运行,或者它只是禁用了submit按钮(即使所有表单字段都无效),这使得无法更正和重新提交-您需要重新加载页面以再次启用submit按钮

我做错了什么?整个验证脚本如下所示:

jQuery(function() {


var $ = jQuery;
$(document).ready(function() {

$('#gform_6').validate( {     
rules       : {
input_6      : { required: true, personnummer: true },          // Personnummer
input_30     : { required: true, personnummer: true },          // Personnummer
input_10     : { required: true, minlength: 6 },                 // telenr
"input_21.1" : { required: true },                               // villkor
"input_3.3"  : { required: function(element) { return (jQuery(element).parent().is(":hidden") == false); } },  // 
"input_3.6"  : { required: function(element) { return (jQuery(element).parent().is(":hidden") == false); } },  // efternamn
input_7      : { required: function(element) { return (jQuery(element).parent().is(":hidden") == false); }, email: true },  // e-post 1
input_31     : { required: function(element) { return (jQuery(element).parent().is(":hidden") == false); }, email: true, equalTo: "#input_6_7" }, // e-post 2 //adress       : { required: true },  // adress
input_14     : { required: function(element) { return (jQuery(element).parent().is(":hidden") == false); } },   // lön
input_15     : { required: function(element) { return (jQuery(element).parent().is(":hidden") == false); }, number: true, minlength: 4, maxlength: 5 }, // clearingnr
input_16     : { required: function(element) { return (jQuery(element).parent().is(":hidden") == false); }, number: true, minlength: 7 }    // kontonr
      },

messages    : {
//pnummer      : "Födelsedatum ogiltigt, ska ha formatet 19770131-1234",
input_6      : "",
input_30     : "Födelsedatum ogiltigt, ska ha formatet 19770131-1234",
"input_3.3"  : "Du måste fylla i ditt förnamn",
"input_3.6"  : "Du måste fylla i ditt efternamn",
input_7      : "Ej giltig e-postadress",
input_31     : "Dina mail-adresser stämmer ej överens",
//adress       : "Fyll i din adress",
input_14     : "Fyll i din lön",
input_10     : "Fyll i ditt telefonnummer",
input_15     : "Clearingnummer måste vara 4 eller 5 siffror",
input_16     : "Kontonummer måste vara minst 7 siffror",
"input_21.1" : "Du måste acceptera villkoren"
},


//debug        : true,

errorClass   : "form-error",
errorElement : "span"
//validClass   : "valid",
submitHandler: function(form) {
$(form).find(":submit").attr("disabled", true).attr("value",
"Submitting...");
form.submit();
}


}
);

我不认为您的验证代码有问题。问题更多地在于提交表格。为什么不在有效提交表单之前验证它?像这样:

submitHandler: function(form) {
//Validates your form
$(form).validate();
//Checks if the form rules are all valid
if($(form).valid()){
$(form).find(":submit").attr("disabled", true).attr("value",
"Submitting...");
form.submit();
}
}
或者,您可以添加一个var来检查表单上是否有提交

<script type="text/javascript">
var isSubmit = false;

$(form).submit(function(){
//Checks if the form has already been submitted
if(isSubmit === false){
isSubmit = true;
//Do your form submission logic here
}
//Just in case you don't want it to conclude
return false;
});

</script>

var isSubmit=false;
$(表单)。提交(函数(){
//检查表单是否已提交
如果(isSubmit===false){
isSubmit=true;
//您的表单提交逻辑在这里吗
}
//以防你不想让它结束
返回false;
});