2016-09-22 2 views
0

Ich möchte Ajax Rückgabewert erhalten. bitte helfe mein Code gibt keinen Wert false oder true zurück., wie Wert übergeben, um mit Ajax zu funktionieren

Ich habe zwei Funktionen in diesem Skript validate(), die validateDate() aufgerufen, die Ajax vorhanden ist

<script type="text/javascript"> 
    $(document).ready(function(){ 

    function validateDate(date) { 

    return $.ajax({ 
      type: "POST", 
      url: "<?php echo base_url(); ?>activate/checkdate", 
      data: "Date_of_Birth="+date, 
      success: function(msg){ 
       if(msg=="false"){ 
         return false; 
       } 
       else{ 
         return false; 
       } 
      } 
     }); 
    } 

function validatesa() { 
    var date = $("#Datepicker").val(); 
    if (validateDate(date)) { 
     return true; 
     } else { 
     sweetAlert(date , "is not a valid date YYYY-MM-DD", "error"); 
    return false; 
     } 
    } 
    }else { 
     sweetAlert(date , "is not a valid date YYYY-MM-DD", "error"); 
     return false; 
     } 
    } 
    $("form").bind("submit", validatesa); 

}); 

</script> 

Antwort

0

AJAX ist asynchroner Prozess so nicht erlaubt zurückzukehren. In Ihrem Fall müssen Sie async : false in Ihrer Ajax Anfrage Option verwenden. ad muss die Rückgabevariable verwenden. Also sollte dein Funktionscode sein.

function validateDate(date) { 
    var response=""; 
    $.ajax({ 
     type: "POST", 
     url: "<?php echo base_url(); ?>activate/checkdate", 
     async: false, 
     data: { 
      Date_of_Birth: date 
     }, 
     success: function(msg) { 
      if (msg == "false") { 
       response = false; 
      } else { 
       response = true; 
      } 
     } 
    }); 
    return response; 
} 
0

Danke für die Erklärung. es hilft sehr. Eine Änderung einige auf dem Skript mit Kommentar vielen Dank

function validateDate(date) { 
    var response=""; // i assign as empty first since ajax success dont have value yet 
    $.ajax({ 
    type: "POST", 
    url: "<?php echo base_url(); ?>activate/checkdate", 
    async: false, 
    data: { 
     Date_of_Birth: date 
    }, 
    success: function(msg) { 
     if (msg == "false") { 
      response = false; // assign false to response variable since false is the output. 
     } else { 
      response = true; 
     } 
     } 
    }); 
    return response; 
} 
Verwandte Themen