jQuery AJAX函数返回true或false只返回false,而这一切都很好
jQuery函数返回true或false,在一切正常时只返回false 我不知道怎么修,也不知道出了什么问题 到目前为止,我得到了以下代码: onclick函数:jQuery AJAX函数返回true或false只返回false,而这一切都很好,jquery,ajax,Jquery,Ajax,jQuery函数返回true或false,在一切正常时只返回false 我不知道怎么修,也不知道出了什么问题 到目前为止,我得到了以下代码: onclick函数: $(document).on('click', '.founditems', function (e) { var $this = $(this) var k = $this.attr('href'); if (checkUserSystem(k) == true) { alert("good"
$(document).on('click', '.founditems', function (e) {
var $this = $(this)
var k = $this.attr('href');
if (checkUserSystem(k) == true) {
alert("good");
} else {
alert("bad");
}
});
function checkUserSystem(k) {
var starttime = $.trim($('#checkusersystemstartime').val());
var k = k;
var dataString = 'k=' + k + '&starttime=' + starttime;
$.ajax({
type: "POST",
url: "r.php?proc=sendCp",
data: dataString,
dataType: 'json',
beforeSend: function () {
},
complete: function () {
},
success: function (data) {
if (data.message == false) {
return false;
} else if (data.cblocked == true) {
return false;
} else {
return true;
}
}
});
return false;
}
$(document).on('click','.founditems',function(e){
var $this=$(this)
var k = $this.attr('href');
checkUserSystem(k);
});
function checkUserSystem(k){
var starttime = $.trim($('#checkusersystemstartime').val());
var k = k;
var dataString = 'k='+ k + '&starttime=' + starttime;
$.ajax({
type: "POST",
url: "r.php?proc=sendCp",
data: dataString,
dataType:'json',
beforeSend: function(){
},
complete:function(){
},
success:
function(data){
if(data.message == false){
alert("good");
}else if(data.cblocked == true){
alert("good");
}else{
alert("good");
}
}
});
return false;
}
ajax功能:
$(document).on('click', '.founditems', function (e) {
var $this = $(this)
var k = $this.attr('href');
if (checkUserSystem(k) == true) {
alert("good");
} else {
alert("bad");
}
});
function checkUserSystem(k) {
var starttime = $.trim($('#checkusersystemstartime').val());
var k = k;
var dataString = 'k=' + k + '&starttime=' + starttime;
$.ajax({
type: "POST",
url: "r.php?proc=sendCp",
data: dataString,
dataType: 'json',
beforeSend: function () {
},
complete: function () {
},
success: function (data) {
if (data.message == false) {
return false;
} else if (data.cblocked == true) {
return false;
} else {
return true;
}
}
});
return false;
}
$(document).on('click','.founditems',function(e){
var $this=$(this)
var k = $this.attr('href');
checkUserSystem(k);
});
function checkUserSystem(k){
var starttime = $.trim($('#checkusersystemstartime').val());
var k = k;
var dataString = 'k='+ k + '&starttime=' + starttime;
$.ajax({
type: "POST",
url: "r.php?proc=sendCp",
data: dataString,
dataType:'json',
beforeSend: function(){
},
complete:function(){
},
success:
function(data){
if(data.message == false){
alert("good");
}else if(data.cblocked == true){
alert("good");
}else{
alert("good");
}
}
});
return false;
}
函数在完美运行时总是返回false,PHP返回true,
如果我删除返回错误;在ajax代码的末尾,它将返回undefined而不是true,有什么想法吗
谢谢。您也可以像这样使用成功部分
function (data) {
if (data.message) {
return true;
} else if (data.cblocked) {
return false;
} else {
return false;
}
}
您必须仔细阅读异步执行。成功块在ajax调用“完成”时运行,但代码的执行将在$.ajax()调用后立即继续 出现未定义错误的原因是,除非您添加“return false”调用,否则该方法不会返回任何内容 您可以将警报真/假部分作为函数参数,也可以查看 在ajax调用的同步版本中。您不能使用“if(checkUserSystem(k)==true)”,因为您的ajax请求是异步请求。 意思是 在ajax请求完成之前,checkUserSystem函数始终会返回“false” 我认为,如果您必须在ajax请求完成后执行某些操作,您应该在ajax.success函数中执行:
$(document).on('click', '.founditems', function (e) {
var $this = $(this)
var k = $this.attr('href');
if (checkUserSystem(k) == true) {
alert("good");
} else {
alert("bad");
}
});
function checkUserSystem(k) {
var starttime = $.trim($('#checkusersystemstartime').val());
var k = k;
var dataString = 'k=' + k + '&starttime=' + starttime;
$.ajax({
type: "POST",
url: "r.php?proc=sendCp",
data: dataString,
dataType: 'json',
beforeSend: function () {
},
complete: function () {
},
success: function (data) {
if (data.message == false) {
return false;
} else if (data.cblocked == true) {
return false;
} else {
return true;
}
}
});
return false;
}
$(document).on('click','.founditems',function(e){
var $this=$(this)
var k = $this.attr('href');
checkUserSystem(k);
});
function checkUserSystem(k){
var starttime = $.trim($('#checkusersystemstartime').val());
var k = k;
var dataString = 'k='+ k + '&starttime=' + starttime;
$.ajax({
type: "POST",
url: "r.php?proc=sendCp",
data: dataString,
dataType:'json',
beforeSend: function(){
},
complete:function(){
},
success:
function(data){
if(data.message == false){
alert("good");
}else if(data.cblocked == true){
alert("good");
}else{
alert("good");
}
}
});
return false;
}
console.log(数据)返回什么?可能是“false”而不是false?是的,如果没有javascript checkdata,函数工作得很好,因为它必须是一个对象。要包含data.message、data.cblock等,谢谢您提供更多信息?这里有一些参考资料。很抱歉,其他人已经在很大程度上描述了这一点。明确地说,我真的建议您考虑继续使用异步版本的解决方案(例如,在成功时传递要执行的方法)。异步执行是一件好事(在等待服务器时不会阻塞),因此选择同步版本应该有更好的理由,您必须仔细考虑:)