我想获得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>
答案 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;
}