0

2 つの選択リストがあり、最初のリストの 1 番目と 2 番目のオプションで、2 番目のリストが有効になる状況を解決しようとしています。

OK、私はリスト#decideを選択しています。デフォルトでは無効になっています。ユーザーがオプションまたはリストから選択した場合、リストは次のように有効になります#day#dayyes: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>

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

このアプローチを使用することもできます.. 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 に答える
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 に答える