フォームに検証プラグインを使用していますが、標準の検証の後、独自のメソッドを追加したいと思います。そのうちの 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();
});