如何使用ajax

时间:2016-09-22 08:33:56

标签: javascript jquery ajax

我想获得ajax返回值。请帮助我的代码不返回false或true。

我在这个脚本中有两个函数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>

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分: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;
 }