如何从 select2() 下拉 Jquery 中禁用选定属性?

Posted

技术标签:

【中文标题】如何从 select2() 下拉 Jquery 中禁用选定属性?【英文标题】:How can I disable selected attribute from select2() dropdown Jquery? 【发布时间】:2014-02-06 20:26:03 【问题描述】:

我知道如何从下拉列表中启用所选属性;我可以使用此代码:

$('select').select2();

但我的问题是如何禁用它?谢谢

【问题讨论】:

它是一个 JQuery 插件 【参考方案1】:

Select2 3.x 的正确做法是:

$('select').select2("enable", false)

这很好用。

【讨论】:

【参考方案2】:

对于使用 Select2 4.x 的用户,您可以通过以下方式禁用单个选项:

$('select option:selected').prop('disabled', true);

对于使用 Select2 4.x 的用户,您可以使用以下命令禁用整个下拉列表:

$('select').prop('disabled', true);

【讨论】:

我编辑了我的帖子,请看图片。这种方法不起作用。我认为 select2 有一个特定的功能,但我是新手。 我试过这个版本:$('select option:selected').attr('disabled','true'); 我有点困惑,你想禁用选择元素还是选择的选项?如果是选择元素试试:$('select').select2().enable(false); 它第一次工作,但第二次它禁用了所有 2 个下拉菜单。我可以做这样的事情吗? $('#subTasks select').select2().enable(false),其中id="subTasks"属于第二个下拉菜单 $('#subTasks').select2().enable(false) => 我想写这个,但是即使我想为Tasks选择另一个值,它也会完全禁用它,Subtask it仍然被禁用。我不知道你是否理解我:D【参考方案3】:

下面的代码也适用于 Select2 3.x

对于启用选择框:

$('#foo').select2('enable');

对于禁用选择框:

$('#foo').select2('disable');

jsfiddle:http://jsfiddle.net/DcunN/

【讨论】:

禁用:在我的情况下是$('#foo').select2('enable', false); $('#foo').select2('disable');不再起作用【参考方案4】:

要禁用完整的 select2 框,即不删除已选择的值并且不插入新的值,请使用:

$("id-select2").prop("disabled", true);

其中id-select2 是select2 的唯一ID。如果定义为解决下拉列表,您还可以使用任何特定的类。

【讨论】:

【参考方案5】:

在selec2 site 你可以看到选项。 api有“禁用”选项。你可以像这样使用:

$('#foo').select2(
    disabled: true
);

【讨论】:

【参考方案6】:

从 Select2 4.1 开始,他们已删除对 .enable 的支持

$("select").prop("disabled", true); // instead of $("select").enable(false);

发件人:https://select2.org/upgrading/migrating-from-35

【讨论】:

【参考方案7】:

由于问题似乎不清楚,如果此答案与原始意图没有直接关系,我很抱歉。

对于那些使用 Select2 版本 4+ 并根据官方插件文档的用户,.select2("enable") 不再是禁用选择框的方法(不是它的一个选项)。它甚至会从 4.1 版开始完全删除。

直接从文档中引用(参见https://select2.org/upgrading/migrating-from-35#select2-enable):

Select2 将尊重底层选择元素的禁用属性。为了启用或禁用 Select2,您应该在元素上调用 .prop('disabled', true/false)。 Select2 4.1 将完全移除对旧方法的支持。

所以在上一个答案的例子中,它应该是: $('select').prop(disabled,true);

【讨论】:

【参考方案8】:

根据 select2 文档:Click Here

如果您想禁用 select2,请使用以下方法:

$(".js-example-disabled").prop("disabled", true);

如果您想启用禁用的 select2 框,请使用以下方法:

$(".js-example-disabled").prop("disabled", false);

【讨论】:

【参考方案9】:

我正在禁用 select2:

$('select').select2("enable",false);

并启用它

$('select').select2("enable");

【讨论】:

【参考方案10】:
$('select').select2('enable',false);

这对我有用。

【讨论】:

【参考方案11】:

我正在禁用价值:

<option disabled="disabled">value</option>

【讨论】:

【参考方案12】:

如果你想禁用下拉菜单的值

$('select option:not(selected)').prop('disabled', true);

$('select').prop('disabled', true);

【讨论】:

以上是关于如何从 select2() 下拉 Jquery 中禁用选定属性?的主要内容,如果未能解决你的问题,请参考以下文章

使用带有标签的select2 jquery插件:true,您如何防止选择出现在已选择的下拉列表中?

通过 javascript/jquery 关闭 select2 下拉菜单

select2下拉菜单的jquery验证弹出位置问题

使用 Select2 jquery 进行多选的 ASP MVC 下拉列表

从 MVC 4 的数据库中填充 Select2 下拉框

jquery select2插件是否支持在下拉列表中使用其他行颜色?