我遇到了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);
}
});
答案 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/