加载选择列表时,在JQuery中使用json数据填充selectlist(不是文档)
我在表单上有一个按钮,动态生成一个选择列表,该列表应该填充json数据,我已经正确地提取了所有json数据我唯一的问题是挂钩selectlist的onload事件以填充数据,我知道我可以使用$(’#itemID’)。fillSelectlist()来填充它,但问题是我的选择列表ID是动态生成的,我不知道如何连接选择的方式($(“# item“+ itemNum +”list“))
我目前的代码如下:
$.fn.fillSelect = function(data) { return this.clearSelect().each(function() { if (this.tagName == 'SELECT') { var dropdownList = this; $.each(data, function(index, optionData) { var option = new Option(optionData.Text, optionData.Value); if ($.browser.msie) { dropdownList.add(option); } else { dropdownList.add(option, null); } }); } });
}
我试图将其连接到选择列表的onload,如下所示:
$.fn.FillDDL = function() { $.getJSON("/Controller/GetFileCategories", null, function(data) { this.fillSelect(data); });
任何指针?
编辑:我的选择列表作为html存储在jquery脚本中,并带有onload =“fillDDL”值,但如果我将脚本设置为$(’#file1Category’),则它们在出现时不会触发。我的document.ready()脚本中的fillDDL会触发但是错误,所以我想我正在扩展我的问题以包括为什么onload不工作以及是否还有其他方法我应该使用?
EDIT2:我的字段被添加到表单中,如下所示:
$('#moreFiles').click(function() { $("" + "" + "" + "" + "" + "" + "" + "
") .hide() .appendTo($('#fileDiv')) .fadeIn('fast'); FileCount++; });
$(function(){ $.getJSON("/Controller/GetFileCategories", null, function(data) { $("select").each(function(){ var dropdownList = this; $(dropdownList).clearSelect(); $.each(data, function(index, optionData) { var option = new Option(optionData.Text, optionData.Value); if ($.browser.msie) { dropdownList.add(option); } else { dropdownList.add(option, null); } }); }); }); });
编辑:哎呀。 重写并修复。
此外,还有一个插件用于此类事情
编辑:您必须使用仅选择所需列表的选择器替换$(“select”)。
如果您的数据如下所示:
var data = [{"Text":"file1","Value":1},{"Text":"file2","Value":2}];
然后:
var str = ""; $.each(data, function(index, optionData) { str += ""; });
然后在你的点击处理程序中可以放
"";
可能必须编写窗口[str]而不是str,以便它是全局的
看起来你的大写可能会关闭。
$.fn.FillDDL
VS
onload="fillDDL"
你也可以这样做: