12

optgroupオプションを含み、 phpを使用して動的に生成される選択ボックスがあります。他のすべての「ALL」を選択optgroupすると、オプションが無効になり、「ALL」以外のオプションを選択すると、「ALL」オプションが無効になります。無効

<select name="select1" id ="select1" onchange="handleSelect()">
    <option value ="-1">ALL</option>
    <optgroup label="CARS">
        <option value="ford">FORD</option>
        <option value="Nissan">Nissan</option>
    </optgroup>
</select>
<script>
    function handleSelect() {
        var selectVal = $("#select1:selected").text();
        if (selectVal == "ALL") {
            // cannot disable all the options in select box
            $("#select1  option").attr("disabled", "disabled");
        }
        else {
            $("#select1 option[value='-1']").attr('disabled', 'disabled');
            $("#select1 option").attr('disabled', '');
        }
    }
</script>

どうすればこれを機能させることができますか?

4

3 に答える 3

21

これは奇妙なことですが、要件を満たすコードを次に示します。

$('select').on('change', function() {
    if (this.value == '-1') {
        $('optgroup option').prop('disabled', true);
    } else {
        $('optgroup option').prop('disabled', false);
    }
});

実際の例- http://jsfiddle.net/NpNFh/

于 2012-06-08T19:08:25.780 に答える
8

次のコードを使用できます。次のように 3 つの選択ボックスがあるとします。

<select class="sel_box" id="sel_1" onchange="disable_sel(this.value);" ></select>
<select class="sel_box" id="sel_2" onchange="disable_sel(this.value);" ></select>
<select class="sel_box" id="sel_3" onchange="disable_sel(this.value);" ></select>

関数 let 'opt' は引数であり、次を使用します

$('.sel_box option[value="'+opt+'"]').attr("disabled", true);
于 2013-06-24T05:26:17.073 に答える
0

ターゲットとするHTMLのバージョンに応じて、disabled属性の構文に2つのバリエーションを使用できます。

HTML4: <option value="spider" disabled>Spider</option>
XHTML: <option value="spider" disabled="disabled">Spider</option>
于 2012-06-08T17:51:17.670 に答える