在添加jquery验证插件后,为什么我的表单开始要求双击提交?我该如何改变它?

时间:2013-08-07 22:55:15

标签: jquery jquery-validate

我有一个附加到我的表单提交按钮的submit()事件,在我开始使用jquery验证插件之前,我可以一键提交此表单。现在由于某种原因需要再次点击。如何让它回到单击?

$("form").submit(function(){

    $(".selector").validate({


          rules: {
                   performance : {
                           required: true

                           //customvalidation: true
                   },
                   location : {
                           required: true

                           //customvalidation: true
                   },
                   date : {
                           required: true

                           //customvalidation: true
                   }
           },
           messages: {

                   performance : {
                           required: "enter a show name"

                           //customvalidation: true
                   },
                   location : {
                           required: "enter a location"

                           //customvalidation: true
                   },
                   date : {
                           required: "pick a date"

                           //customvalidation: true
                   }
           }

return false;

}); //closes submit()        


});

1 个答案:

答案 0 :(得分:5)

这是你的整个问题......

$("form").submit(function(){

    $(".selector").validate({
        ...

您不需要将.validate()放在submit事件处理程序中。该插件已自动捕获submit事件。 .validate()方法是表单上插件的初始化方法;它只会附加到form元素,然后只在DOM上调用一次就绪了。 (您现在需要双击,因为只需要第一次单击即可初始化插件。)

只需这样做......

$(document).ready(function() {

    ("#yourform").validate({
        // options & rules
    });

});

简单演示http://jsfiddle.net/x6Ckg/

如果出于某种原因,您需要在submit事件上运行其他代码,则可以使用插件提供的submitHandler回调函数。

$(document).ready(function() {

    ("#yourform").validate({
        //options & rules,
        submitHandler: function (form) {
            // stuff to do when form is valid
            // ajax, etc?
        }
    });

});