ここに私のセットアップがあります:radiobutton1
ページがロードされたときに既にチェックされている場合 (checked="checked"
ソースが表示されています)、 を選択した後にチェックを外そうとすると、 を選択した後radiobutton2
にchecked
属性radiobutton1
が削除されません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"
。何故ですか?それは逆であるべきです。
アップデート
これが私のコードの一部です。if
ステートメントの部分がヒットしていることはわかっているので、それは問題ではありません。また、使用しているラジオ ボタン ID ( ccRadioBtn
、checkRadioBtn
および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
属性が削除されますが、そうではありません。そして、選択された 2 番目のラジオ ボタンには、当然のことながら [いいえ] がありませんchecked="checked"
。これは、ページのソースを表示するとわかります。なぜそれが機能しないのかわかりません。