我正在尝试解决您有两个选择列表的情况,以及第一个列表中的第一个和第二个选项,第二个列表已启用。
好的,我有#decide
和#day
个选择列表,默认情况下会禁用#day
。如果用户从yes:
列表中选择选项maybe:
或#decide
,则#day
列表将启用
$('#day').prop('disabled', false);
else或如果选择了任何其他选项,它会将该禁用的属性返回给#day:
$('#day').prop('disabled', true);
目前我只有html:
<select id="decide" name="decide" class="span4">
<option value="0" selected="selected">--</option>
<option value="yes">yes:</option>
<option value="maybe">maybe:</option>
<option value="no">no</option>
<option value="nevermind">nevermind</option>
</select>
<select id="day" name="day" class="span4" disabled>
<option value="0" selected="selected">--</option>
<option value="1">monday</option>
<option value="2">tuesday</option>
<option value="3">saturday</option>
<option value="4">sunday</option>
</select>
和想法用jquery代码的部分来解决它
这里是当前情况的jsfiddle:http://jsfiddle.net/3hwzK/
答案 0 :(得分:2)
也许是这样的:
$("#decide").change(function () {
$("#day").prop("disabled", !(["yes", "maybe"].indexOf(this.value) !== -1));
});
答案 1 :(得分:1)
我添加了这个JS代码:
$("#decide").change(function () {
$('#day').prop('disabled', false); });
中工作得很好
答案 2 :(得分:1)
这应该有用......
$(document).on('change', "#decide", function(){
if(this.value == "yes" || this.value == "maybe"){
$("#day").removeAttr("disabled");
}else{
$("#day").attr("disabled", "true");
}
});
答案 3 :(得分:1)
你可以试试这个,
$("#decide").change(function (){
if(this.value == "yes" || this.value == "maybe"){
$("#day").removeAttr("disabled");
}else{
$("#day").attr("disabled", "true");
}
});
如果您选择的值为“是”或“可能”,则“#day”选择框将被启用,否则将被禁用。
答案 4 :(得分:1)
你也可以使用这种方法.. http://jsfiddle.net/3hwzK/3/
$("#decide").change(function () {
var valid_answers = ['yes', 'maybe'];
var is_disabled = ($.inArray($(this).val(), valid_answers) > -1) ? false : true;
$('#day').prop('disabled', is_disabled);
});