有没有人想出一种方法来限制 select2 按组的选择?
一旦选择了该组中的某些内容,我希望自动删除同一组中的任何选择(实际上限制为每组一个选择)
如果在我完成之前没有人发布好的解决方案,我会做一些事情并将其发布在这里。
有没有人想出一种方法来限制 select2 按组的选择?
一旦选择了该组中的某些内容,我希望自动删除同一组中的任何选择(实际上限制为每组一个选择)
如果在我完成之前没有人发布好的解决方案,我会做一些事情并将其发布在这里。
可以防止在 Select2 中进行选择,因此可以根据“组”的定义方式来完成。如果“组”<optgroup>
在标准<select>
中,则只需检查是否<optgroup>
已选择了中的任何其他选项,并基于此阻止正在进行的选择。
Select2 在进行选择时会发出一个select2:selecting
事件,并且可以通过调用preventDefault()
它来阻止该事件。
$("#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();
}
});
凯文布朗的答案非常接近我正在寻找的内容,但我实际上想自动取消选择同一 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