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

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

$("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() }); 

这是你的整个问题……

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

您不需要在submit事件处理程序中放置.validate() 。 该插件已自动捕获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? } }); });