1

我有一个 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()        


});
4

1 回答 1

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?
        }
    });

});
于 2013-08-08T00:58:55.900 回答