我有一组代码,几周前我最近从这里获得了帮助。
当必要的复选框都未选中时,我的代码目前工作正常。简短的逻辑是这样的:
如果选中 AIR(默认未选中),则会有一条消息告诉您必须先检查 HES,然后再检查 AIR。如果同时选中了 AIR 和 HES,并且您尝试取消选中 HES,则会出现一条消息告诉您无法取消选中 HES。
问题是:所有这些值都是由 DB 驱动的;一些条目可能会检查 AIR 或 HES。完成后,代码将被丢弃,甚至无法正常工作。检查下面:
AIR 已检查,但似乎当我检查 HES 时,消息仍然显示。我什至尝试在检查之前使用 prop 来获取每两个复选框的值,但无济于事。我试图确保应用相同的规则,无论是从数据库中检查 AIR 还是 HES。我在下面的尝试示例:
$(function () {
$('tr').on('change', '.AIR', function () {
if (!$(this).closest('td').siblings('td').find('.HES').prop('checked')) {
alert("HES has to be checked if AIR is to be checked.\nPlease go back and check HES.");
$(this).prop('checked', !this.checked);
}
});
$('tr').on('change', '.HES', function () {
if (!$(this).closest('td').siblings('td').find('.AIR').prop('checked')) {
if ($(this).closest('td').siblings('td').find('.AIR').is(':checked')) {
alert("HES1 has to be checked if AIR is to be checked.\nPlease leave HES checked.");
$(this).prop('checked', !this.checked);
}
}
});
});
任何帮助将不胜感激。