Javascript 为什么我不';无法获取返回值
当我调试代码时,我可以看到我有值,但我没有得到createCheckBoxPlatform FN的值Javascript 为什么我不';无法获取返回值,javascript,jquery,json,html,Javascript,Jquery,Json,Html,当我调试代码时,我可以看到我有值,但我没有得到createCheckBoxPlatform FN的值 函数createCheckBoxPlatform(数据){ var平台=”; $。每个(数据、功能(i、项){ 平台+=''+项操作系统名+''; }); os+=''; 返回操作系统; } }); }我认为你必须改变你的逻辑。除非是同步调用,否则createCheckBoxPlatform循环将在getOS()ajax调用返回之前完成 您可以将函数拆分为多个部分,收集每个数据点的getOS数
函数createCheckBoxPlatform(数据){
var平台=”;
$。每个(数据、功能(i、项){
平台+=''+项操作系统名+'';
});
os+='';
返回操作系统;
}
});
}
我认为你必须改变你的逻辑。除非是同步调用,否则createCheckBoxPlatform循环将在getOS()ajax调用返回之前完成
您可以将函数拆分为多个部分,收集每个数据点的getOS数据,然后在ajax调用返回时构建复选框。ajax中的第一个“A”代表“异步”,这意味着调用后不会立即执行。所以你永远得不到价值
也许您可以先获取操作系统列表,然后输出所需内容,如下所示:
function createCheckBoxPlatform(myDatas) {
$.ajax({
url: "/QRCNew/GetOS",
type: "post",
dataType: "Json",
success: function (osList) {
var os = '<div>';
$.each(osList, function (i, item) {
os += '<label><input type="checkbox" name="' + item.OperatingSystemName + ' value="' + item.OperatingSystemSK + '">' + item.OperatingSystemName + '</label> ';
});
os += '</div>';
$.each(myDdatas, function (i, item) {
platform += '<label><input type="checkbox" name="' + item.PlatformName + ' value="' + item.PlatformSK + '">' + item.PlatformName + '</label>'+os
});
$('#platform').append((platform));
}
});
}
函数createCheckBoxPlatform(myDatas){
$.ajax({
url:“/QRCNew/GetOS”,
类型:“post”,
数据类型:“Json”,
成功:功能(osList){
var os=“”;
$.each(osList,函数(i,项){
os+=''+item.PlatformName+''+操作系统
});
$('平台')。追加((平台));
}
});
}
您可以使ajax调用异步,并且不必更改当前逻辑。但是,在没有得到ajax调用的回调之前,执行将停止。
函数getOS(){
$.ajax({
url:“/QRCNew/GetOS”,
类型:“post”,
数据类型:“Json”,
async:true,
成功:功能(数据){
var os=“”;
$。每个(数据、功能(i、项){
os+=“getOS函数正在执行一个异步请求,当您的内容附加到
#platform
时,该请求尚未完成。您可以从JS中的回调返回一个值。然后,请选择“最佳答案”。
function getOS() {
$.ajax({
url: "/QRCNew/GetOS",
type: "post",
dataType: "Json",
async: true,
success: function (data) {
var os = '<div>';
$.each(data, function (i, item) {
os += '<label><input type="checkbox" name="' + item.OperatingSystemName + ' value="' + item.OperatingSystemSK + '">' + item.OperatingSystemName + '</label> ';
});
os += '</div>';
return os;
}
});
}