2014-11-21 3 views
0

Привет, у меня проблема с перенаправлением формы к его действию, проверка ajax прерывает перенаправление формы здесь мой код, все, что я просто отправляю сообщение, чтобы сформировать местоположение действия, также перенаправляет на это место нахождения.Ajax Validation intrupt the form submit on form submit event

$("form").submit(function(e){ 
    jQuery.ajax({ 
    type : "post", 
    url : "validate.php", 
    dataType : "json", 
    data : {email : '[email protected]'}, 
    success: function(response) { 
     if(response.status == '1'){ 
      //Email is valid want to continue form submit and redirect , but it is not 
     }else{ 
      e.preventDefault(); 
      //return false 
     } 
    } 
    }); 
}) 
+0

Какая у вас ошибка? –

+0

Что вы получаете в 'response.status' ?? – WisdmLabs

+0

Привет, статус ответа - «1», проблема заключается в отправке события, возможно ли сначала выполнить проверку, а затем отправить событие, если проверка не прошла, а затем прекратить отправку – Max

ответ

2

Вы, возможно, потребуется создать отделенный функцию чтобы submit вашу форму как обратного вызова процесса проверки АЯКС и передать сериализованные данные к нему, что-то вроде:

function submitForm(serializedData) { 
    jQuery.ajax({ 
     ur: "{your form action processing file}", 
     type: "POST", 
     data: serializedData, 
     success: function (data, textStatus, xhr) { 
      console.log("form submitted "+xhr.status) // 201 if everything OK 
      // optionally reload the page 
      window.location.reload(true); 
     } 
    }); 
} 

jQuery(document).ready(function ($) { 
    // validate form 
    $("#myForm").on("submit", function (event) { 
     // prevent form from being submitted 
     event.preventDefault(); 
     // collect your form data to be submitted : 
     var serializedData = $("#myForm").serializeArray(); 
     $.ajax({ 
      url : "validate.php", 
      type: "POST", 
      cache: false, 
      dataType : "json", 
      data : {email : '[email protected]'}, 
      success: function (response) { 
       if(response.status == '1'){ 
        // email is valid so submit the form 
        submitForm(serializedData); 
       } // you don't need an else statement since we already used event.preventDefault() before the ajax call 
      }, 
      error: function() { 
       console.log("ajax validation error"); 
      } 
     }) 
    }); // on submit  

}); // ready 

Извещение мы назначили селектор (#myForm) на вид мы обрабатываем.