5

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

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

4

1 回答 1

8

文档内容如下:

Selectmenu 小部件提供样式化的选择元素替换。它将充当返回原始选择元素的代理,控制其状态以进行表单提交或序列化。

强调我的)。

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


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

因此,我们有以下内容:

刷新

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

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

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

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

于 2014-11-18T17:44:09.010 回答