我正在做一个小应用程序,该应用程序使用来自不同JSON的值并在Google图表中绘制图表。我有8个选择器,每组2个:4个,用于选择我要绘制的4个变量的JSON文件(第一级),而另一个4个(嵌套),以选择所选JSON的不同数据(第二级)。第一级调用JSON文件,并将属性显示为在第二级选择器中选择的选项(作为级联下拉列表)。
当我从第一级选择表单并调用json时,jsonData是正确的,但是如果我改变主意并想从第一级中选择另一个选项,则我的函数会再次向我返回旧值。由于触发了 secondChoose(jsonData)函数。
有人知道为什么吗?
提前谢谢!
我让您看下面的代码:
var url;
var id;
var dataContainer = [];
var findSelector;
var keySelected;
var newDatas;
$(".firstLevel").on('change', function(){
url = $(this).find("option:selected").attr("name");
id = $(this).attr("name");
$.ajax({
url: url,
type: "GET",
dataType: 'jsonp',
crossDomain: true,
jsonpCallback: 'foo',
success: secondChoose
})
});
function secondChoose(jsonData) {
findSelector = $("#"+id);
findSelector.empty();
findSelector.append("<option selected>..</option>")
for (var key in jsonData) {
findSelector.append("<option class='form-option'>"+key+"</option>")
}
findSelector.on('change',function(){
keySelected = findSelector.find("option:selected").text();
newDatas = jsonData[keySelected].datas;
dataContainer.push(newDatas);
})
};