JQuery验证插件正在强制双击以提交表单

JQuery验证插件正在强制双击以提交表单,jquery,forms,jquery-plugins,validation,Jquery,Forms,Jquery Plugins,Validation,我必须在表格上点击提交按钮两次才能提交。如何使用户只需单击提交?但是,我不希望启用onfocusout或onkeyup。我只想通过点击提交按钮来验证我的表单 $(document).ready(function() { $.validator.setDefaults({ onfocusout: false, onkeyup: false }); $.validator.addMethod("user

我必须在表格上点击提交按钮两次才能提交。如何使用户只需单击提交?但是,我不希望启用onfocusout或onkeyup。我只想通过点击提交按钮来验证我的表单

    $(document).ready(function() {
        $.validator.setDefaults({
          onfocusout: false,
          onkeyup: false
        });

        $.validator.addMethod("username", function(value, element) {
           return this.optional(element) || /^[a-z]+$/i.test(value);
            }, "Your username may only contain letters");

        var validator = $("#registerForm").validate({
          showErrors: function(errorMap, errorList) {
            $("#registerForm").find("input").each(function() {
                $(this).removeClass("error");
            });
            $("#errorcontainer").html("");
            if(errorList.length) {
              $("#errorcontainer").html(errorList[0]['message']);
              $(errorList[0]['element']).addClass("error");
              $('#errorcontainer').css('display','none');
              $('#errorcontainer').fadeIn(400);
            }
            else {
              $('#errorcontainer').css('display','none');
            }
          },

          rules: {
            username: {
              required: true,
              rangelength: [3,15],
              remote: "usernamevalidation.php"
            },
            password: {
              required: true,
              rangelength: [5,20]
            },
            passwordconfirm: {
              required: true,
              equalTo: "#password"
            },
            email: {
              required: true,
              email: true,
              remote: "emailvalidation.php"
            }
          },

          messages: {
            username: {
              required: "You must enter a username.",
              rangelength: "Your username must be between {0} and {1} letters.",
              remote: "Your desired username is already in use."
            },
            password: {
              required: "You must enter a password.",
              rangelength: "Your password must be between {0} and {1} letters."
            },
            passwordconfirm: {
              required: "Your passwords must match.",
              equalTo: "Your passwords must match."
            },
            email: {
              required: "You must enter an email address.",
              email: "Your email address is not valid.",
              remote: "This email is already in use."
            }
          }
        });
      });

以下是为我解决这个问题的方法:

  • 使用jQuery 1.5.2
  • 使用jqueryvalidatev1.8.0

仅供参考,我也在使用jQuery UI(v1.8.11),与上述内容无关:


希望有帮助

您好,我使用了jquery validate附带的shubmitHandler

submitHandler:函数(表单){
表单提交();
返回错误
});

我希望它能帮助你像那样使用遥控器

remote:{
url: "emailvalidation.php",
async:false
}
这里“async:false”允许在第一次单击时提交表单,
希望对您有所帮助。

我遇到了同样的问题,并通过在我的验证中添加以下内容来解决:

$("#myform").validate({
  onfocusout: false
});

查看更多信息,请访问

您是否尝试将
onsubmit:true
添加到默认值?我刚刚添加了,但没有成功。很遗憾:/如果您需要帮助,请帮助我们帮助您。链接插件的源代码,更重要的是,链接到一个示例,这样我们就可以重现问题。这背后的逻辑是什么?