JQuery输入无线电仅工作一次

时间:2011-10-28 09:44:01

标签: javascript jquery

我遇到了JQuery的麻烦,我有2套无线电输入,一套用于选择付款方式,另一套用于发货。如果我选择了接机付款,我想要我的第二台收音机,那货也要说。这工作正常,直到我更改第二个收音机,之后它将无法正常工作。

所以基本上,在更改货件后,更改付款方式时货件不会再自动更改。

$("input:radio[name=paymentMethod]").change(function() {
        if($(this+':checked').val()=='pickUp'){
            $('input:radio[name=deliveryMethod]').filter('[value=pickUp]').attr('checked', true);
            $('input:radio[name=deliveryMethod]').filter('[value=UPS]').attr('checked', false);
        }
    });

2 个答案:

答案 0 :(得分:1)

this是一个jQuery对象,不是一个字符串。你不能把它们加在一起。至少使用以下代码:

$("input:radio[name=paymentMethod]").change(function() {
        if($('input:radio[name=paymentMethod]:checked').val()=='pickUp'){
            $('input:radio[name=deliveryMethod]').filter('[value=pickUp]').attr('checked', true);
            $('input:radio[name=deliveryMethod]').filter('[value=UPS]').attr('checked', false);
        }
    });

答案 1 :(得分:1)

如果您想在用户选择取件付款方式时“阻止”UPS交付的选择,我建议禁用UPS交付方式(如果选择了其他内容,则重新启用它),如下所示:

$("input:radio[name=paymentMethod]").change(function() {
    if ($('input:radio[name=paymentMethod]:checked').val() == 'pickUp') {
        $('input:radio[name=deliveryMethod]').filter('[value=pickUp]').attr('checked', true);
        $('input:radio[name=deliveryMethod]').filter('[value=UPS]').attr('disabled', true);
    } else {
        $('input:radio[name=deliveryMethod]').filter('[value=UPS]').attr('disabled', false);
    }
});

<强>小提琴http://jsfiddle.net/zvcbz/