选择提交验证方法的顺序

时间:2013-11-01 19:50:40

标签: javascript jquery ajax validation

我正在为我的表单使用验证插件但是在标准验证之后我想添加我自己的方法,其中一个是Ajax函数,它检查电子邮件是否已经存在。

两者都有效,但如果我输入电子邮件,它会执行Ajax方法,我想在其中放置重定向。

问题是,即使并非所有字段都被填充,它也总是重定向。它必须首先检查标准验证,然后如果一切正常则执行ajax然后提交我该怎么做?

    $( "#registration-form" ).submit(function( event ) {

//vars
var contactemail = $('#contactemail').val();
var contactpassword = $('#contactpassword').val();

//Global validation
$.validate({
      onError : function() {
      //alert('Validation failed');
      return false;
    }
});

//If User create - check if user exists
if($('#contactemail').length && $('#contactemail').val().length && $('#contactpassword').length && $('#contactpassword').val().length)
{
    //Check if can create user
    $.post(jssitebaseUrl+'/ajaxFile.php',{'contactemail':contactemail,'action':'checkOrderEmailId'}, function(output){
        //alert(output);
        if(output == 'UserExist' && contactpassword !=""){
            $("#errors").show();
            $('#errors').html('<p class="i">Can not create account</p>');
            $('html, body').animate({scrollTop:0}, 'slow');
            return false;
        }
        else if(output == 'CanCreateAccount' || (output == 'UserExist' && contactpassword =="")){
            alert("Maak een guest order aan")

//redirect...
            document.checkoutform.submit();
        }
    });
}
event.preventDefault();
});

1 个答案:

答案 0 :(得分:0)

在发布前尝试检查表单是否有效:

if ( $("#formId").valid() ) {
  // ajax call

}