2011-10-28 64 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); 
     } 
    });