AJAX提交前的jQuery验证



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

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

在我提交表格之前,它会正确验证。

当我也想对表单进行AJAX提交时,问题就来了,因为表单不再验证,并且在没有验证的情况下提交:

<form id="registerForm" action="register.php" method="post" onsubmit="xmlhttpPost('register.php', 'registerForm', 'signup-box'); return false;">

默认情况下有效:

<form method="post" id="registerForm" action="register.php">

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

谢谢。


感谢Kundan Singh Chouhan,我找到了在文档中添加以下代码的解决方案。准备块:

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

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

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

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

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

希望这能解决你的问题。

您可以使用jQuery。这里的验证是一些示例代码:

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

问候。

相关内容

  • 没有找到相关文章

最新更新