このページには、1つのチェックボックス、3つのラジオボタン、および1つのボタンが含まれています。チェックボックスまたはいずれかのラジオボタンの状態を変更する場合は、有効にする必要があります。ページが読み込まれると、ボタンはデフォルトで無効になります。
以下のコードはラジオボタンでは機能しませんが、checkBoxでは機能します。間違いはどこにありますか?
$(document).ready(function () {
/*The initial values of checkBox and RadioButtons they have as the page was loaded*/
var rbl = $('#rbgList').find('input:radio:checked');
var rblInitialValue = rbl.val();
var chk = $('#chkHideFromAddressBook');
var chkInitialValue = chk.is(":checked");
var btn = $('#btnSaveConfigSettings');
var isChanged = function () {
return ((rbl.val() != rblInitialValue) || (chk.is(":checked") != chkInitialValue));
};
/*Set button the state of SaveChanges to enables/disabled that depends on of the current state (check/unchecked) of checkBox and RadioButtons*/
/*1*/
$('#rbgList input:radio').click(function () {
isChanged() ? btn.attr('disabled', '') : btn.attr('disabled', 'disabled');
});
/*2*/
$("#chkHideFromAddressBook").click(function () {
isChanged() ? btn.attr('disabled', '') : btn.attr('disabled', 'disabled');
});
})
しかし、これはうまく機能します
$(document).ready(function () {
/*The initial values of checkBox and RadioButtons they have as the page was loaded*/
var rblInitialValue = $('#rbgList').find('input:radio:checked').val();
var chkInitialValue = $('#chkHideFromAddressBook').is(":checked");
$('#rbgList input:radio').click(function () {
if (
($('#rbgList').find('input:radio:checked').val() != rblInitialValue) ||
($('#chkHideFromAddressBook').is(":checked") != chkInitialValue)
) {
$('#btnSaveConfigSettings').attr('disabled', '');
}
else {
$('#btnSaveConfigSettings').attr('disabled', 'disabled');
}
});
$("#chkHideFromAddressBook").click(function () {
if (
($('#rbgList').find('input:radio:checked').val() != rblInitialValue) ||
($('#chkHideFromAddressBook').is(":checked") != chkInitialValue)
) {
$('#btnSaveConfigSettings').attr('disabled', '');
}
else {
$('#btnSaveConfigSettings').attr('disabled', 'disabled');
}
});
});