0

mySelect と mySelect2 の 2 つの選択リストがあります。チェックボックスをクリックすると、一方が選択され、他方が同時に変更されます。

以下のコードを確認してください。

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">

function displayResult() {
    if(document.form1.billingtoo.checked == true) {
        var x = document.getElementById("mySelect").selectedIndex;
        // Set selected index for mySelect2
        document.getElementById("mySelect2").selectedIndex = x;
   }
}

</script>
</head>
<body>

<form name="form1">
Select your favorite fruit:
    <select id="mySelect">
        <option>Apple</option>
        <option>Orange</option>
        <option>Pineapple</option>
        <option>Banana</option>
    </select>

    <br>

    <input type="checkbox" name="billingtoo" onclick="displayResult()">

    <br>

Select your favorite fruit 2:
    <select id="mySelect2">
        <option>Apple</option>
        <option>Orange</option>
        <option>Pineapple</option>
        <option>Banana</option>
    </select>

</form>
</body>
</html>

...値を設定したら変更を加えられないように、mySelect2 を無効 (グレー表示) にするにはどうすればよいですか?

ありがとう。

4

1 に答える 1

6

何も使用していないのに、質問に「jQuery」というタグが付けられている理由はわかりませんが、それでも:

// with "plain" JS:
document.getElementById("mySelect2").disabled = true;

// with jQuery
$("#mySelect2").prop("disabled", true);

どちらの方法でも、コントロールを再度有効にするには、 disabledback をに設定します。false

関数を jQuery で書き直す多くの方法の 1 つを次に示します。

$(document).ready(function() {
    // bind the checkbox click handler here,
    // not in an inline onclick attribute:
    $('input[name="billingtoo"]').click(function() {
        var $mySelect2 = $("#mySelect2");
        // if checkbox is checked set the second select value to
        // the same as the first
        if (this.checked)
            $mySelect2.val( $("#mySelect").val() );
        // disable or re-enable select according to state of checkbox:
        $mySelect2.prop("disabled", this.checked);
    });
});

デモ: http://jsfiddle.net/nnnnnn/99TsC/

于 2012-08-09T03:56:55.270 に答える