通过 jQuery 在选择菜单中添加禁用的选定选项

Posted

技术标签:

【中文标题】通过 jQuery 在选择菜单中添加禁用的选定选项【英文标题】:Add disabled selected option in select menu via jQuery 【发布时间】:2015-03-25 09:53:15 【问题描述】:

我们有一个通过 data- 属性和一个 knockout.js 数组填充的选择菜单。我对 jQuery 也不是很熟悉,请记住这一点。

如何通过 jQuery 添加一个选项,该选项是第一个选择的选项,并且它也被禁用。基本上,它被用作占位符。我知道如何通过 html 做到这一点,但不是这样。这是正在使用的 HTML:

<select id="delemilter" data-bind="options: delimiterList, value: delimiterSelectedValue, optionsValue: 'value', optionsText: 'name', enable: true"></select>

在其他选择菜单中,我们的一位开发人员使用了这行 jQuery。似乎是一些淘汰 API 的东西。看起来像一个可观察的数组:

self.selectMenuID.push( value: 'Placeholder Text', key: 0, data: 0, disabled: true );

无法弄清楚如何再次重用它...希望这是足够的信息。

谢谢!

【问题讨论】:

【参考方案1】:

你可以这样做:

$('#delemilter').prepend('<option disabled="disabled">My disabled Option</option>');

记得根据需要在我们选项的html中指定其他属性。

这是一个适合您的 JSFiddle:http://jsfiddle.net/loanburger/ask9L71h/

【讨论】:

太棒了,谢谢!现在我必须弄清楚为什么它仍然选择第二个选项(最初是第一个),即使我在.prepend 上有一个selected 属性。可能需要开发人员的帮助。但这确实有效,只是不完全适合我的具体情况。【参考方案2】:

我发现这种方式更加优雅和可读:

$("select").append($("<option>", 
    value: "foo",
    text: "bar"
).prop("disabled", true));

【讨论】:

以上是关于通过 jQuery 在选择菜单中添加禁用的选定选项的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 javascript/jquery 在选择下拉菜单中启用/禁用引导选项

禁用先前选择的下拉选项,检查文本和 id 值

阻止禁用和选定的选项在表单中发送空白值

如何在 jQuery datetimepicker 中禁用选定的日期和时间

在延迟()之后通过jQuery分配“选定”选项

PHP如果变量等于下拉列表中的值,则将“选定”属性添加到选项