在AJAX提交之前进行jQueryvalidation

我有一个简单的注册表单,其中包含以下jQueryvalidation代码:

$(document).ready(function(){ $("#registerForm").validate({ rules: { Username: {required: true, minlength: 6}, Password: {required: true, minlength: 6}, re_Password: {required: true, equalTo: "#Password"} }, }); }); 

在我提交表单之前,它会正确validation。

当我想要对表单进行AJAX提交时,问题就出现了,因为表单不再validation并提交而不进行validation:

 

有效的默认值是:

  

如果有人能指出我正确的方向或给我一些起点来解决这个问题,我将不胜感激。

谢谢。


感谢Kundan Singh Chouhan我找到了解决方案,将以下代码添加到document.ready块:

 $("#registerForm").submit(function(){ if($("#registerForm").valid()){ xmlhttpPost('register.php', 'registerForm', 'signup-box'); } return false; }); 

我认为您应该从表单标记中删除onsubmit事件,并在document.ready()中编写以下脚本

 $("form").submit(function(){ if($("form").validate()){ xmlhttpPost('register.php', 'registerForm', 'signup-box'); } return false; }); 

希望这能解决你的问题。

我认为您应该使用JQuery Validator的提交处理程序,如下所示:

 $('#id_of_form').validate(){ // rules and messages submitHandler: function(form) { // place your code for Ajax Request here... } } 

你可以使用jQuery.Validation这里有一些示例代码:

  var $form = $("form"); $form.validate({ rules: { Username: {required: true, minlength: 6}, Password: {required: true, minlength: 6}, re_Password: {required: true, equalTo: "#Password"} }, invalidHandler: function(event, validator) { // 'this' refers to the form var errors = validator.numberOfInvalids(); if (errors) { var message = errors === 1 ? 'You missed 1 field. It has been highlighted' : 'You missed ' + errors + ' fields. They have been highlighted'; } }, submitHandler: function (form) { var $form = $(form); $.ajax({ url: destinationUrl, method: "POST", data: $form.serialize() }) .done(function (result) { // show some message, etc... return false; // blocks redirect after submission via ajax }) .fail(function (response, error) { // failed }) .always(function() { }); } }); 

问候。