gpt4 book ai didi

javascript - jQuery 中刷新下拉选择而不刷新页面

转载 作者:行者123 更新时间:2023-12-03 04:05:10 24 4
gpt4 key购买 nike

听起来很简单。

我有一个在页面加载时运行的函数:

 function initializeSelect($select, uri, adapt){        
$.getJSON( uri, function( data ) {
$select.empty().append($('<option>'));
$.each(data, function(index, item) {
var model = adapt(item);
var $option = $('<option>');
$option.get(0).selected = model.selected;
$option.attr('value', model.value)
.text(model.text)
.appendTo($select);
});
});
});

此处调用并生成下拉选择的选项:

 initializeSelect($('#commoditySelect'), 'api/sel_keyCommodities.php', function (item) { 
return {
value: item.KEY_COMMODITY,
text: item.KEY_COMMODITY
}
});

当模式窗口关闭时,我需要能够刷新下拉选择而不刷新页面:

 $('#messageModal').on('hidden.bs.modal', function()
{
// I tried this to no avail
initializeSelect();
});

这样,下拉选择将重新运行,并且可能会添加一个可能已添加或未添加的新选择。

这可以做到吗?如果可以,如何做到?

最佳答案

您可以存储 uri 的值和adapt “在”<select>data(...)并在调用initializeSelect时使用这些不带参数(或至少不带 uriadapt )

function initializeSelect($select, uri, adapt) {
if (typeof uri !== "string") {
uri = select.data("uri");
adapt = select.data("adapt");
} else {
select.data({
"uri": uri,
"adapt": adapt
});
}

$.getJSON(uri, function(data) {
$select.empty().append("<option>");

$.each(data, function(index, item) {
var model = adapt(item);

$("<option>")
.val(model.value)
.text(model.text)
.prop("selected", model.selected)
.appendTo($select);
});
});
}

“刷新”<select>您必须调用initializeSelect()将其传递给所需的<select>

initializeSelect($("commoditySelect"));

example on jsfiddle

关于javascript - jQuery 中刷新下拉选择而不刷新页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44593805/

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