ここに私のセットアップがあります: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"。これは、ページのソースを表示するとわかります。なぜそれが機能しないのかわかりません。