选择特定选项后禁用 select2 上的选项

Disable options on select2 after specific one is selected

本文关键字:选项 select2 选择      更新时间:2023-09-26

我在我的网站上使用了一个 select2,比方说有 10 个选项。所以我有这个js:

$("#myselect").select2({ 
    maximumSelectionLength: 3
});

选择选项 1 后,我想禁用 Select2 上的所有其他选项。不知何故,就像跳过最大选择长度并突然只允许选择一个。但只有当我选择选项 1 时,这才应该发生。

例如,如果我选择选项 2,我只需要停用选项 1。

因此,一般来说,如果选择了其他内容,则需要将选项 1 从最多 3 个选择中排除,并且应该停用所有其他选项,以防在开始时被选中。我希望我在描述中说得很清楚。

这样的事情可能吗,怎么可能?

我试过这个>

if($("#myselect").val() == 1){
    $("#myselect").find("option").each(function(){
        if($(this).val() != 1){
            $(this).attr("disabled", "disabled");
        }
    });
}

当选择选项 1 时,这实际上会将 disabled 属性添加到所有选项中,但不是在生成的 select2 HTML 代码上,仅在我的初始 HTML 上,因此它实际上不起作用。

提前致谢

在@karan3112建议之后,我添加了这个

   $("#myselect").select2({maximumSelectionLength:3}).trigger('selection:update'); 

添加禁用属性后,工作正常。