我有一个SELECT
元素,当我选择选项更改时使用AJAX填充表单。使用下面的代码可以很好地工作:在页面加载和更改时使用AJAX填充SELECT元素
$(function() {
function populate() {
$.getJSON('/action/' + $(this).val(), {}, function(data, textStatus) {
var el = $('select#two');
el.html(''); // empty the select
$.each(data, function(idx, jsonData) {
el.append($('<option></option>').val(jsonData.id).html(jsonData.name));
});
});
}
$("select#one").change(populate);
});
当然这只有当第一次下拉首先被改变时才起作用。我想要做的是使用相同的方法预先填充页面第一次加载时的第二个下拉列表。
我能想到的唯一的办法就是如下修改getJSON
电话:
$.getJSON('/action/' + $("select#one").val(), {}, function(data, textStatus)
(即不使用$(this)
)
,然后简单地在底部调用这个'在负载'初始化块:
populate();
虽然这工作,它只是感觉不对。任何人都可以提出一个更好的解