【发布时间】:2018-02-08 13:13:41
【问题描述】:
在页面加载时,我正在尝试填充选择框。 #select2 的数据命中 URL 取决于 #select1 的值。由于第一个选择框也是从 Ajax 调用接收的数据中填充的,因此我无法提前知道页面加载时所选选项的内容。 initData() 在身体负荷时被调用。
我尝试了以下方法,但在 initData() selectOneValue 是 null 时调用 getSelectData('#select2', 'urlBase/' + selectOneValue + '/urlSuffix');。
function initData() {
initEnvs().then(function () {
var selectOneValue= $('#select1').val();
getSelectData('#select2', 'urlBase/' + selectOneValue + '/urlSuffix');
});
}
function initEnvs() {
return $.Deferred(function (def) {
getSelectData('#select1', someUrl);
def.resolve();
}).promise();
}
function getSelectData(selectId, urlFragment) {
$.ajax({
type: "GET",
url: "/data/" + urlFragment,
dataType: "json",
success: function (data) {
appendSelectOptions(selectId, data);
},
error: function (xhr) {
//handle error
}
});
}
我在这里做错了什么?
【问题讨论】:
标签: javascript jquery jquery-deferred