有没有人想出一种方法来限制select2的选择?
我希望一旦选择了该组中的某些内容,就会自动从同一组中删除任何选项(实际上限制为每组选择一个)
如果没有人在我完成之前发布一个好的解决方案,我会在这里发布一些内容并发布。
答案 0 :(得分:3)
可以防止在Select2中进行选择,因此可以根据&#34; group&#34;被定义为。如果是&#34;组&#34;是标准<optgroup>
中的<select>
,只需检查是否已选择<optgroup>
中的任何其他选项,并阻止正在进行的选择基于此。
选择2在进行选择时会发出select2:selecting
事件,calling preventDefault()
on it可以阻止此事件。
$("#mySelect").on("select2:selecting", function (evt) {
var data = evt.params.data;
var $element = $(data.element);
// check if any options in the group are selected
if ($element.parent("optgroup").find(":selected").length) {
evt.preventDefault();
}
});
答案 1 :(得分:1)
Kevin Brown的回答非常接近我所寻找的,但我实际上想要从同一个optgroup中自动取消选择任何选定的选项。我得到了以下工作:
$("#my-select").on("select2-selecting", function (event) {
$(event.object.element).parent("optgroup").find(":selected").attr('selected', false);
$("#my-select").trigger('change');
});
注意:我正在使用Select2 3.5.2