如何禁用特定的jquery-ui selectmenu选项?

时间:2014-11-17 20:06:29

标签: jquery jquery-ui jquery-ui-selectmenu

我了解如何禁用整个选择菜单。

但我只想禁用其中的一些选项。我怎么能这样做??

1 个答案:

答案 0 :(得分:8)

文档内容如下:

  

Selectmenu小部件提供了一个可样式的选择元素替换。 它将作为代理返回原始选择元素,控制其表单提交或序列化的状态

强调我的)。

这意味着您只需将disabled属性添加到您要在HTML中禁用的<option>,并在初始化后反映在窗口小部件中


关于您动态更改原始 <select>元素的更改,它不会立即反映在窗口小部件中 - 因为可以想象,不断查询{{1原始DOM中的更改可能会导致性能下降。

因此我们有以下内容:

refresh

  

解析原始元素并重新呈现菜单。处理添加,删除或禁用的任何元素或元素。

我们所要做的就是对原始<select>进行更改并调用refresh。

在这种情况下,我们应该将选项定位为禁用相应的selectors,使用attr()禁用它们,然后调用refresh,如下所示:

&#13;
&#13;
<select>
&#13;
$(function() {
  $("#speed").selectmenu();
  $("#first").attr("disabled", true); // any other selector as you wish
  $("#speed").selectmenu("refresh");
});
&#13;
label {
  display: block;
  margin: 30px 0 0 0;
}
select {
  width: 200px;
}
&#13;
&#13;
&#13;