2011-10-28 36 views
1

我遇到了JQuery的麻烦,我有两组收音机输入,一个用于选择付款方式,一个用于发货。如果我选择付款,我希望我的第二台收音机,货物也可以选择。这工作正常,直到我改变第二个电台,之后,它不会工作。JQuery输入收音机只能工作一次

因此,基本上,更改装运后,在更改付款方式时,货物不会再自动更改。

$("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); 
     } 
    }); 
+0

你能不能请张贴有关HTML吗? – jackJoe

+0

归结到这一点(没有表结构)

    \t \t \t  Delivery by UPS  Pick up
PvdL

+0

你的html缺少名称和关闭输入,可能与它被粘贴的方式有关。与您的问题相关,除非您在付款时选择了UPS,否则您希望检查代购(交付)?如果您选择任何其他付款方式,还原(在交货时检查提货)? – jackJoe

回答

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/

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); 
     } 
    });