Вот мои настройки: если 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
получают удар, так что это не проблема, и я знаю, что идентификаторы переключателей (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
первой радиокнопки должен быть удален, но это не так.И у второй выбранной радиокнопки нет checked="checked"
, как и должно быть.Я вижу это при просмотре исходного кода страницы.Я не уверен, почему это не работает.