-1

フォームに検証プラグインを使用していますが、標準の検証の後、独自のメソッドを追加したいと思います。そのうちの 1 つは、電子メールが既に存在するかどうかをチェックする Ajax 関数です。

どちらも機能しますが、たとえばメールを入力すると、リダイレクトを配置したいAjaxメソッドが実行されます。

問題は、すべてのフィールドが入力されていなくても、常にリダイレクトされることです。最初にすべての標準的な検証をチェックし、すべてがOKであれば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();
});
4

1 に答える 1