4

ラジオボタンが選択されている場合、選択フォームのドロップダウンを無効にするにはどうすればよいですか?

ユーザーが #no ラジオ ボタンを選択した場合は #preference フォームを無効にし、#yes または #maybe を選択した場合は再度有効にします。

これは私のフォームコードです -

<form name="xmas" id="xmas" action="send_mail.php" method="post">
            <input type="radio" name="choice" value="Yes" id="yes"/><label for="yes">Yes - I would like to take up the offer</label>
            <input type="radio" name="choice" value="No" id="no"/><label for="no">No - I'm not ready to order yet</label>
            <input type="radio" name="choice" value="Maybe" id="maybe"/><label for="maybe">Maybe - I'm not sure, would you please give me a call</label><br />
            <div class="secondlineform">
                <input type="text" name="name" class="textfield" value="Name" onfocus="if(this.value=this.defaultValue){this.value=''}; return false;"/>
                <input type="text" name="email" class="textfield" value="Email" onfocus="if(this.value=this.defaultValue){this.value=''}; return false;"/>
                <input type="text" name="company" class="textfield" value="Company" onfocus="if(this.value=this.defaultValue){this.value=''}; return false;"/>
                <select class="dropselect" name="preference" label="Preference" id="preference">
                    <option selected="selected" disabled="disabled" value="Preference">Preference</option>
                    <option value="Alcohol Package">Alcohol Package</option>
                    <option value="Gift Card Package">Gift Card Package</option>
                </select>
                <input type="submit" value="" name="submit" id="submit" class="submit"/>

            </div>
        </form>

そして、これは私のスクリプトコードです -

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>


  var update_select = function () {
    if ($('#no').is(':checked')) {
    $('#preference').attr('disabled', "disabled");
}
else {
    $("#preference").removeAttr("disabled");
}

};

$(update_select);
$('#no').change(update_select);

</script>

ご回答ありがとうございます。私はこれを何年も研究してきましたが、私が見つけたすべての解決策は私の問題を解決していないようです.

4

4 に答える 4

2

Noラジオのみの変更イベントを追加している場合は、次のように変更します。

$("input[name='choice']").change(update_select);

デモ:: jsFiddle

于 2012-11-25T08:05:20.407 に答える
2
$('input[type=radio]').change(update_select);​
于 2012-11-25T08:10:49.530 に答える
0

update_selectこのように、ラジオボタンの残りの部分に関数を適用する必要があります

var update_select = function () {
$('#preference').attr('disabled', $('#no').is(':checked'));
};


$('#no').change(update_select);
$('#yes').change(update_select);
$('#maybe').change(update_select);

これがフィドルです:http://jsfiddle.net/QXkhM/

于 2012-11-25T08:06:06.443 に答える
0

ラジオ ボタン リストを ul で囲み、ID を付けます。

例えば:

        <ul id="offer">
        <input type="radio" name="choice"  value="Yes" id="yes"/><label for="yes">Yes - I would like to take up the offer</label>
        <input type="radio" name="choice"  value="No" id="no"/><label for="no">No - I'm not ready to order yet</label>
        <input type="radio" name="choice"  value="Maybe" id="maybe"/><label for="maybe">Maybe - I'm not sure, would you please give me a cal
        l</label><br />
        </ul>

var update_select = function () {
    if ($('#no').is(':checked')) {
        $('#preference').attr('disabled', "disabled");
    }
    else {
        $("#preference").removeAttr("disabled");
    }
};
$(update_select);
$('#offer').change(update_select);

そして、それはうまくいくでしょう

于 2012-11-25T08:12:40.393 に答える