0

我正在尝试解决您有两个选择列表并且在第一个列表中的第一个和第二个选项上启用第二个列表的情况。

好的,我有#decide#day选择列表,#day默认情况下是禁用的。如果用户选择选项yes:maybe:#decide列表中,#day列表将启用

$('#day').prop('disabled', false);

否则,如果选择了任何其他选项,它将将该禁用的属性返回给#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>

和想法用 qouted 的部分 jquery 代码来解决它

这是当前情况的jsfiddle:http: //jsfiddle.net/3hwzK/

4

5 回答 5

2

也许是这样的:

$("#decide").change(function () {
    $("#day").prop("disabled", !(["yes", "maybe"].indexOf(this.value) !== -1));
});

演示:http: //jsfiddle.net/hungerpain/3hwzK/2/

于 2013-06-23T08:57:47.690 回答
1

我添加了这个 JS 代码:

$("#decide").change(function () {
  $('#day').prop('disabled', false);  });

JSFiddle中工作得很好

于 2013-06-23T08:45:23.760 回答
1

这应该工作...

$(document).on('change', "#decide", function(){
if(this.value == "yes" || this.value == "maybe"){
    $("#day").removeAttr("disabled");
}else{
    $("#day").attr("disabled", "true");
}
});
于 2013-06-23T08:47:15.330 回答
1

你可以试试这个

          $("#decide").change(function (){
              if(this.value == "yes" || this.value == "maybe"){
                   $("#day").removeAttr("disabled");
              }else{
           $("#day").attr("disabled", "true");
           }
           });

如果您选择的值为“yes”或“maybe”,则“#day”选择框将被启用,否则它将被禁用。

于 2013-06-23T08:57:21.063 回答
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); 
});
于 2013-06-23T09:11:40.227 回答