【发布时间】:2016-02-09 10:20:48
【问题描述】:
我在我的网站中使用了一个 select2,假设有 10 个选项。所以我有这个js:
$("#myselect").select2({
maximumSelectionLength: 3
});
选择选项1时,我想禁用Select2上的所有其他选项。不知何故,就像跳过 maximumSelectionLength 并突然只允许选择一个。但这只有在我选择选项 1 时才会发生。
例如,如果我选择选项 2,我只需要停用选项 1。
因此,一般来说,如果选择了其他选项,则选项 1 需要从最多 3 个选项中排除,并且应该停用所有其他选项,以防一开始就被选中。我希望我在描述中说得很清楚。
这样的事情可能吗?如何?
我试过这个>
if($("#myselect").val() == 1){
$("#myselect").find("option").each(function(){
if($(this).val() != 1){
$(this).attr("disabled", "disabled");
}
});
}
这实际上在选择选项1时将禁用属性添加到所有选项,但不是在生成的select2 html代码上,仅在我的初始html上,所以它实际上不起作用。
提前致谢
【问题讨论】:
-
添加disable属性后更新select2初始化。试试
$("#myselect").select2("updateResults") -
这个'updateResults'是select2的一个选项吗?因为它似乎不起作用。
-
检查 select2 插件的文档。基本上你将不得不重新初始化或调用插件的一些更新函数,因为如果选择,你已经更新了结构。
-
其实这个可行。我只需要触发更改 $("#myselect").select2({maximumSelectionLength: 3}).trigger('selection:update');
标签: javascript jquery html jquery-select2 select2