选择另一个后无法取消选中单选按钮

时间:2010-07-15 22:34:02

标签: jquery radio-button checked

以下是我的设置:如果页面加载时检查了radiobutton1(视图来源中有checked="checked"),我选择radiobutton2后尝试取消选中checked,{{选择radiobutton1

后,{} {}}上的1}}属性未被删除
radiobutton2

选择if($('#' + radiobutton1_ID).is(':checked')) UncheckRadioButton('#' + radiobutton2_ID); // Utility function to clear a radiobutton's "checked" attribute function UncheckRadioButton(radiobuttonID) { radiobuttonID.removeAttr("checked"); } 并执行“查看来源”后,我在radiobutton2上看不到checked="checked"即使页面显示此按钮已选中),而对于radiobutton2,它仍会显示radiobutton1。这是为什么?它应该是另一种方式。


更新

这是我的一些代码。我知道checked="checked"语句部分已被点击,因此不是问题,我知道我使用的单选按钮ID(ifccRadioBtncheckRadioBtn)是正确的:

paypalRadioButton

问题是:如果一个单选按钮默认为 var ccRadioBtn = ccRadioButton; // credit card radio button ID var paypalRadioButton = payPalRadioClientID; // ... if (paypalIsSelected()) { UncheckRadioButton(checkRadioBtn); UncheckRadioButton(ccRadioBtn); // ... } else { // force a clear on any previously selected payment options CheckRadioButton(ccRadioBtn); // default to credit card radio button UncheckRadioButton(paypalRadioButton); UncheckRadioButton(checkRadioBtn); // ... } } function UncheckRadioButton(radiobuttonID) { $('#' + radiobuttonID).removeAttr("checked"); } function CheckRadioButton(radiobuttonID) { $('#' + radiobuttonID).attr('checked', true); } 而我单击另一个单选按钮,则应删除第一个单选按钮的checked="checked"属性,但事实并非如此。并且已选择的第二个单选按钮没有checked。当我查看页面源时,我可以看到这一点。我不确定为什么这不起作用。

1 个答案:

答案 0 :(得分:5)

你在这里传递一个字符串:

UncheckRadioButton('#' + radiobutton_2_ID);

但是在这里尝试将它用作jQuery对象:

radiobuttonID.removeAttr("checked");
//which is actually doing this:
"#something".removeAttr("checked"); //.removeAttr() is not a function for string

您需要将其包装起来以将其用作选择器,如下所示:

$(radiobuttonID).removeAttr("checked");

至于视图源...它取决于浏览器,例如IE将显示页面的原始源,而不是您当前正在查看的状态。