-1

如何连接具有不同名称的收音机?我有类似的东西

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

当我单击“Visa”时,我还希望通过 jQuery 检查“卡”,当然,当我在“现金”之后单击时,它将从名称 = 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 时,它正在检查卡,但是当我检查现金然后再次使用 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 回答