-1

異なる名前のラジオを接続するにはどうすればよいですか? 私はそのようなものを持っています

- Cash (name=payment)
- Card (name=payment)
-- Visa (name=paymentCard)
-- MasterCard (name=paymentCard)

そして、「Visa」をクリックすると、jQuery で「Card」もチェックしたいと思います。もちろん、その後「Cash」をクリックすると、name=paymentCard のラジオからチェックが削除されます。

html コード:

<label><input type="radio" name="INPUT-payment" value="Cash" checked="checked">Cash</label><br>
<label><input type="radio" name="INPUT-payment" value="Card" class="card">Card</label><br>
<label><input type="radio" name="INPUT-paymentCard" value="Visa">Visa</label><br>
<label><input type="radio" name="INPUT-paymentCard" value="MasterCard">MasterCard</label>

jqueryコード:

$('input[name=INPUT-paymentCard]').on('click', function(){
    $('input[value=Card').attr('checked', true);
});

$('input[name=INPUT-payment]').on('click', function(){
    $('input[name=INPUT-paymentCard]').removeAttr('checked');
});

このコードを使用すると、Visa を選択するとカードがチェックされますが、Cash をチェックしてから再び Visa をチェックすると、カードはチェックされなくなります。

JSFiddle へのリンク: http://jsfiddle.net/cRQB2/

4

1 に答える 1

2

試す

<input name="payment" type="radio" class="payment cash"/> Cash 
<input name="payment" type="radio" class="payment card"/> Card

<input name="paymentCard" type="radio" class="paymentCard visa"/> Visa 
<input name="paymentCard" type="radio" class="paymentCard Master"/> MasterCard 

jQuery(function(){
    var $payments = $('input.payment').change(function(){
        if(!$(this).hasClass('card')){
            $cards.prop('checked', false);
        }
    })
    var $cards = $('input.paymentCard').change(function(){
        if(this.checked){
            $payments.filter('.card').prop('checked', true);
        }
    })
})

デモ:フィドル

于 2013-09-30T01:09:34.383 に答える