JQueryvalidation插件提交时不应该提交

我试图通过在电子邮件无效,密码不符合最低要求或密码和确认密码字段不匹配的情况下打印出来来validation我的表单。

为了validation插件是否正常工作,我只测试电子邮件的有效性。 在提交表单之前,validation器似乎工作了一秒钟,无论表单是否有效,我似乎无法弄清楚原因。

此外,“电子邮件无效”消息未打印出来。

我一直在努力想出这个问题很长一段时间,我很感激任何建议。

提前致谢!

JavaScript的:

$('#signUpForm').validate({ // initialize the plugin errorPlacement: function(error, element) {}, rules: { email: { required: true, email: true } } }); $('#signUpForm').submit(function(e){ e.preventDefault(); if($(this).valid()){ $(this).submit(); }else{ return false; } }); 

形成:

 

这个配置都错了……

 $('#signUpForm').validate({ // initialize the plugin .... }); $('#signUpForm').submit(function(e){ .... }); 

您的.submit()处理程序是完全冗余的,并且完全干扰了jQuery Validate插件的正确操作,该插件会自动捕获按钮click并阻止submit事件。

换句话说, .submit()处理程序中的代码在function上与插件已经为您执行的操作相同。 你不需要它,它正在破坏validation。


您的errorPlacment回调函数为空,这样就可以阻止所有错误消息显示…

 errorPlacement: function(error, element) {}, 

它应该看起来像这样……

 $('#signUpForm').validate({ // initialize the plugin rules: { email: { required: true, email: true }, password: { required: true, minlength: 8, maxlength: 12 }, confirmPassword: { equalTo: '#signUpPassword' } } }); 

演示: http : //jsfiddle.net/2t7dbuuf/


有关正确用法,请参阅文档和SO Tag Wiki页面 。