gpt4 book ai didi

jquery - 加载选择列表(而不是文档)时,使用 JQuery 中的 json 数据填充选择列表

转载 作者:行者123 更新时间:2023-12-01 08:28:38 26 4
gpt4 key购买 nike

我的表单上有一个按钮,可以动态生成一个选择列表,该列表应该填充有 json 数据,我已正确提取所有 json 数据,我唯一的问题是 Hook 选择列表的 onload 事件来填充本身带有数据,我知道我可以使用 $('#itemID').fillSelectlist() 来填充它,但问题是我的选择列表 ID 是动态生成的,我不知道如何连接像 ( $ ("#item"+ itemNum + "列表") )

我当前的代码如下:

$.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);
}
});
}
});

}

我试图将其连接到选择列表的加载,如下所示:

$.fn.FillDDL = function() {
$.getJSON("/Controller/GetFileCategories", null, function(data) {
this.fillSelect(data);
});

<select id="file1Category" name="file1Category" class="form_input_small" onload="fillDDL"></select>

有什么指示吗?

编辑:我的选择列表被注入(inject)到页面中,作为存储在 jquery 脚本中的 html,具有 onload="fillDDL"值,但如果我设置一个脚本来执行 $('#file1Category),它们出现时不会触发').fillDDL 在我的 document.ready() 脚本中它会触发但错误,所以我想我正在扩展我的问题以包括为什么 onload 不起作用以及是否还有我应该使用的另一种方法?

EDIT2:我的字段被添加到表单中,如下所示:

$('#moreFiles').click(function() {
$("<div class='form_row'>" +
"<div id='file" + FileCount + "row'>" +
"<input type='button' class='form_input_small delete' value='X' onclick=\"$('#file" + FileCount + "row').empty()\" />" +
"<label for='file" + FileCount + "File' class='form_label_small'>File</label>" +
"<input type='file' class='form_input_small' name='file" + FileCount + "File' id='file" + FileCount + "File' />" +
"<label for='file" + FileCount + "Category' class='form_label_small'>Category</label>" +
"<select id='file" + FileCount + "Category' name='file" + FileCount + "Category' class='form_input_small'></select>" +
"</div></div><br class='clear' />")
.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);
}
});
});
});
});

编辑:哎呀。重写并修复。

此外,还有一个plugin对于这种事情

编辑:您必须将 $("select") 替换为仅选择您想要的列表的选择器。

关于jquery - 加载选择列表(而不是文档)时,使用 JQuery 中的 json 数据填充选择列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1567962/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com