使用jquery 1.7.1,我使用json填充下拉列表。代码工作得很好,存储在函数中但调用document.ready()
。我希望有人发现它有用,但是:
proxy.invoke("fetchCHAA", {},
function(result) {
if (result == null) {
alert("Possible error in fetching list of CHAAs");
return;
}
else {
var optionsValues = '<select>';
optionsValues += '<option value=""></option>';
$.each(result, function() {
optionsValues += '<option value="' + this.chaa_id + '">' + this.chaa_name + '</option>';
});
optionsValues += '</select>';
var options = $('#optionsChaa');
options.replaceWith(optionsValues);
}
}, onPageError);
正如我所说,问题在于.change事件或甚至试图获取所选项目的值。例如,我们知道
var id = $("#optionsChaa").val();
// should bring back the chaa_id
或者:
var text = $("#optionsChaa").text();
// should bring back the chaa name
问题是通过.val()
带回ID或TEXT总是未定义的。我注意到其他人似乎有同样的问题但似乎无法解决它。
我甚至将change事件添加到了optionsValue对象中,希望在加载DOM之后它会起作用,但这似乎不起作用。
我不想硬编码页面上的选项列表,但看起来我可能不得不这样做。
答案 0 :(得分:2)
尝试将var optionsValues = '<select>';
更改为var optionsValues = '<select id="optionsChaa">';
我认为身份证正在迷失。
编辑 @David M打败了我,这就是答案。