-6ren">
gpt4 book ai didi

javascript - 流程上的 Bootstrap Multiselect 更新选项列表

转载 作者:可可西里 更新时间:2023-11-01 02:50:07 26 4
gpt4 key购买 nike

我使用 Bootstrap multi-select我想用 ajax 更新流选项

要在初始化时填充我的多选

<select name="model" class="multiselect" multiple="multiple">
<? foreach ($sel_models as $mod) { ?>
<option value="<?= $mod ?>" <?= ($mod == $params['model']) ? 'selected' : '' ?>><?= $mod ?></option>
<? } ?>
</select>

然后在事件中我想用以下 ajax 更新我的选项列表

我试图使用重建方法,但在创建后不会触发下拉列表

 $.ajax({
type: 'post',
url: "helper/ajax_search.php",
data: {models: decodeURIComponent(brands)},
dataType: 'json',
success: function(data) {
$('select.multiselect').empty();
$('select.multiselect').append(
$('<option></option>')
.text('alle')
.val('alle')
);

$.each(data, function(index, html) {
$('select.multiselect').append(
$('<option></option>')
.text(html.name)
.val(html.name)
);
});

$('.multiselect').multiselect('rebuild')
},
error: function(error) {
console.log("Error:");
console.log(error);
}
});

使用 Firebug 我可以看到列表已生成但在选择时不会显示

最佳答案

在我可以阅读的文档中:

.multiselect('setOptions', 选项)用于在初始化多选后更改配置。这可能与 .multiselect('rebuild') 结合使用很有用。

也许您无法通过您最初的方式更改您的小部件数据。您应该以正确的方式使用 setOptions 方法。

否则:按照您的方式,也许您应该考虑销毁您的小部件 .multiselect('destroy') 并在之后重新创建它。

评论后更新:

在文档中:(您已链接)

Provides data for building the select's options the following way:

var data = [
{label: "ACNP", value: "ACNP"},
{label: "test", value: "test"}
];
$("#multiselect").multiselect('dataprovider', data);

所以:当您从 ajax 调用中获取数据时,您必须创建一个对象数组(这是您想要的选择中的选项),其格式类似于

var data = 
[
{label: 'option1Label', value: 'option1Value'},
{label: 'option2Label', value: 'option2Value'},
...
]

创建对象数组后,您只需调用方法

$("#multiselect").multiselect('dataprovider', data);

其中数据是您的对象数组。

我希望我是清楚的:/

关于javascript - 流程上的 Bootstrap Multiselect 更新选项列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20401703/

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