有很多关于jQuery启用/禁用元素的文章,但我有点困惑。我尝试使用选择和单个输入字段,如果使用选择,则必须禁用该字段,反之亦然。
例如
<span>Choice a year from the list</span>
<select id="selYear" name="selYear" >
<option id="op-0">Choice a year</option>
<option id="op-1" >1893 </option>
<option id="op-2" >1894</option>
</select>
<span>Or type a new one</span>
<input id="year_single" name="year_single" type="text" >
(当然必须有一个输入过滤器。)要禁用输入字段并启用它,如果选择第一个选项很容易。如果有人询问如何,有代码:
$("#selYear").change(function() {
if(this[0].selected){
$("#year_single").attr("disabled",false);
}
else
$("#year_single").attr("disabled",true)
})
)
但相反的情况并非如我所料。我试过了:
$("#year_single").change(function() {
if($(this).val().length == 0){
//alert("aaa");
$("#selYear").attr("disabled",false);
}
else
$("#selYear").attr("disabled",true)
})
这可行,但是在按下 Insert 键后选择会被禁用,或者在单击它后,我希望在第一个插入数字后被禁用。在这种情况下,该change()
功能可能不是正确的选择?