我了解如何禁用整个选择菜单。
但我只想禁用其中的一些选项。我该怎么做..?
文档内容如下:
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>