2016-09-22 39 views
0

我想获得ajax的返回值。请帮助我的代码不返回值为false或true。如何通过ajax传递值来实现功能

我在这个脚本的validate(两个功能),其调用validateDate()的AJAX是本

<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> 

回答

0

AJAX是异步处理,以便返回不允许的。在你的情况下,你必须在你的ajax请求选项中使用async : false。广告必须使用返回变量。所以你的功能代码应该是。

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

感谢您的解释。它帮助了很多。改变一些脚本评论感谢很多

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; 
}