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

Aqu*_*222 5 jquery jquery-ui jquery-ui-selectmenu

我知道如何禁用整个selectmenu.

但我只想禁用其中的一些选项.我该怎么做..?

T J*_*T J 8

文件内容如下:

Selectmenu小部件提供可选择的选择元素替换.它将充当原始select元素的代理,控制其表单提交或序列化的状态

(强调我的).

这意味着你可以简单地将disabled属性添加到<option>你要在HTML中禁用的属性,它将在小部件初始化后反映在小部件中.


关于您对原始 <select>元素进行动态更改,它不会立即反映在窗口小部件中 - 因为正如人们可能想象的那样,不断查询原始元素的DOM更改<select>可能会导致性能损失.

因此我们有以下内容:

刷新

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

我们所要做的就是,对原始内容进行更改<select>并调用刷新.

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

$(function() {
  $("#speed").selectmenu();
  $("#first").attr("disabled", true); // any other selector as you wish
  $("#speed").selectmenu("refresh");
});
Run Code Online (Sandbox Code Playgroud)
label {
  display: block;
  margin: 30px 0 0 0;
}
select {
  width: 200px;
}
Run Code Online (Sandbox Code Playgroud)
<link href="http://code.jquery.com/ui/1.11.2/themes/smoothness/jquery-ui.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://code.jquery.com/ui/1.11.2/jquery-ui.js"></script>
<label for="speed">Select a speed</label>
<select name="speed" id="speed">
  <option id="first">Slower</option> <!-- disabled by dynamically-->
  <option>Slow</option>
  <option selected="selected">Medium</option>
  <option disabled>Fast</option> <!-- disabled by default-->
  <option>Faster</option>
</select>
Run Code Online (Sandbox Code Playgroud)