如何通过ajax传递值给函数

how to pass value to function with ajax

本文关键字:函数 何通过 ajax      更新时间:2023-09-26

我想获得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>

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

谢谢你的解释。这很有帮助。在脚本上做了一些修改和注释,非常感谢

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