1
jQuery有以下问题。我用这个代码:jQuery文档准备好调用序列
function populate_select_from_json(select, json_url) {
select.empty();
$.getJSON(json_url, function(data) {
$.each(data, function(key, value) {
$("<option></option>")
.attr("value", value.name)
.text(value.title)
.appendTo(select);
});
});
select.children(":first").attr("selected", true);
}
$(document).ready(function() {
var value_type = $("#value_type");
populate_select_from_json(value_type, SOME_URL);
var unit = $("#unit");
populate_select_from_json(unit, ANOTHER_URL + value_type.val());
});
我想:
- 将文档
- 从相关数据库
- 把数据获取
#value_type <select>
项一些JSON数据 - 获取值
#value_type
选择,并再次查询数据库以填充另一个选择项目。
的问题是,当我叫value_type.val()
,它总是输出null
,即使#value_type <select>
填充正确。我在这里做错了什么?
** A ** JAX是** **异步。在调用'value_type.val()'的时刻,该字段尚未填充。我建议使用延迟对象来链接Ajax调用:http://api.jquery.com/category/deferred-object/。 –
正是我的想法!它看起来像该领域尚未填充。浏览器是否在另一个线程中调用我的方法,以便从.ready回调函数中分离出来? – artonson
我想要检索数据,一些后台进程开始,但JS中没有线程。 –