我有一个 bootstrap multiselect我用网络服务调用的数据填充的 html 元素,该调用获取新西兰的区域列表。我需要将这些选项加载到 <select>
中默认情况下不选择顶部选项。
我已经尝试了通过bootstrap 多选内置函数和选项 完成的所有操作。什么都行不通。所以我求助于 vanilla javascript 或 vanilla jquery 直接进入纯 html 并取消选择第一个选项。
这方面的所有工作都可以在 this jsfiddle 中完成
我不得不将缩小的外部资源 (xml2json.min.js) 复制并粘贴到 javascript 编辑器的顶部,因为当我尝试将其添加为外部资源时它运行不佳。
我试过这个:
$("ul.multiselect-container").find("li").removeClass("active");
而且它不起作用。它删除事件类但不取消选择该选项。如何取消选择该选项?
我试过这个:
$("ul.multiselect-container").find('input[type="radio":checked]').prop('checked', false);
它不会取消选择该选项。
请查看是否可以取消选择 select 的顶部选项。
因此 url 上的 jsfiddle 与上面相同但以 182 结尾是我的重构,试图让人们更容易理解,但它最终没有在我 friend 的笔记本电脑上正常工作。
将插件用作 <select multiple=true>
时默认情况下它不会选择顶部选项。但是我需要与普通 <select>
相同的行为
最佳答案
我刚刚查看了插件,这是我的理解,要删除默认选择
,您必须将选择设置为 multiple='multiple',这时您可以在下拉列表中看到复选框而不是单选按钮。
如果您不设置此多个选项,那么您最终会得到一个单选按钮,这将默认设置第一个值。这是 Fiddle which doesnt not select any default值(value)。我刚刚将选项 multiple='multiple'
添加到您的动态选择标签中。
要设置选项多选并且一次只能选择一个,请使用以下代码。你需要用这个替换你的代码块
$("body").prepend("<select id=\"a-select\" multiple='multiple' >"
+ optionsText +
"</select>");
$('#a-select').multiselect({
on: {
change: function(option, checked) {
alert('sdd');
var values = [];
$('#a-select').each(function() {
if ($(this).val() !== option.val()) {
values.push($(this).val());
}
});
$('#a-select').multiselect('deselect', values);
}
}
});
逻辑取自http://davidstutz.github.io/bootstrap-multiselect/#further-examples ,请参阅此处的第 5 个示例,其中显示 Simulate single selections using checkboxes
。
关于javascript - 取消选择 <select> 中的顶部选项 - bootstrap multiselect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36171300/