该页面包含 1 个复选框、3 个单选按钮和一个按钮。如果复选框或任何单选按钮的状态发生更改,则应启用它。页面加载时,默认情况下禁用该按钮。
下面的代码不适用于单选按钮,但适用于复选框。错误在哪里?
$(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');
}
});
});