嘿所以我有这个HTML(通过PHP循环输出):
<select class="dropdown" id="pa_genre" name="attribute_pa_genre">
<optgroup label="Choose an option:"></optgroup>
<option value="sport" selected="selected">Sport</option>
</select>
这个jQuery(取自Disable a <select /> if there is only one <option /> with jQuery):
$(document).ready(function(){
var $sca = $("select.dropdown");
if ($sca.find("option").length <= 1) {
$sca.prop('disabled', true);
}
});
但无法让它工作..我在同一个类的页面上有多个下拉列表(因此为什么将该类定位为不是id)。我将attr
更改为prop
,因为我确定它是新版本而attr
已不再使用..
答案 0 :(得分:1)
由于您有多个输入,因此需要某种形式的迭代来相应地设置其disabled
属性。
$("select.dropdown").prop('disabled', function() {
return $('option', this).length < 2;
});
以上效果与:
相同$("select.dropdown").each(function() {
this.disabled = $('option', this).length < 2;
});
当select有2个或更多选项时,上面的两个代码段都会自动将disabled
设置为false
。如果这产生了有意义的差异,您可以使用此代码段禁用&lt;没有自动重新启用的2个选项使用&gt; = 2选项进行选择:
$("select.dropdown").each(function() {
if ( $('option', this).length < 2 ) this.disabled = true;
});