gpt4 book ai didi

jquery - jquery中如何从匿名函数返回值

转载 作者:行者123 更新时间:2023-12-01 08:23:00 25 4
gpt4 key购买 nike

function test() {
var flag1 = false;
if ($('#field1').attr('value') || !$('#field1').attr('value')) {
$.ajaxSetup({
cache: false
});
$.getJSON("test_term.php", {
'term1': $("#cde").attr('value'),
'cd3': $("#cde3").attr('value')
}, function(data) {
if (data[0].stss == 'K') {
var status = data[0].stss;
flag1 = true;

} else if (data[0].stss == 'U' || data[0].stss == '') {
flag1 = false;
return;
}
});
}
alert("ANonymous value" + flag1);
return flag1;
}

如何从 getJson() 中使用的匿名函数返回“flag1”值?它总是返回 false ,这是在顶部引用的。

最佳答案

按照您的尝试方式,这是不可能的。

Ajax 调用是异步的,只要准备好就会返回。您传递给 getJSON() 的内部函数在外部函数 test() 完成运行后运行良好。

这意味着 - 当 Ajax 调用返回时您希望发生什么 - 将其放入回调函数中。请勿使用标志和返回值。

例如

function do something(flag) {
// do something
}

function test() {
if ($('#field1').attr('value') || !$('#field1').attr('value')) {
$.ajaxSetup({
cache: false
});
$.getJSON("test_term.php", {
'term1': $("#cde").attr('value'),
'cd3': $("#cde3").attr('value')
}, function(data) {
if (data[0].stss == 'K') {
var status = data[0].stss;
doSomething(true);
} else if (data[0].stss == 'U' || data[0].stss == '') {
doSomething(false);
}
});
}
}

关于jquery - jquery中如何从匿名函数返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6114382/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com