gpt4 book ai didi

javascript - 使用 Jquery 切换复选框仍然存在问题

转载 作者:行者123 更新时间:2023-11-28 08:58:57 28 4
gpt4 key购买 nike

我有一组代码,几周前我最近从这里获得了帮助。

http://jsfiddle.net/49Krx/

当必要的复选框均未选中时,我的代码当前工作正常。简短的逻辑是这样的:

如果选中 AIR(默认情况下未选中),则会显示一条消息,告诉您必须在选中 AIR 之前检查 HES。如果同时选中 AIR 和 HES,并且您尝试取消选中 HES,则会显示一条消息,告诉您无法取消选中 HES。

问题在于:所有这些值都是由 DB 驱动的;一些条目可能会检查 AIR 或 HES。完成后,代码会被丢弃,甚至无法工作。检查以下内容:

http://jsfiddle.net/AUm7M/1/

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);
}
}
});
});

任何帮助将不胜感激。

最佳答案

您需要做的是对 .HES 添加二次检查,以确定在调用 $(this).prop('checked', !this.选中);

我用额外的检查更新了 fiddle :

http://jsfiddle.net/AUm7M/2/

这应该满足您允许检查 HES 的要求,即使它加载时仅检查了 AIR。

关于javascript - 使用 Jquery 切换复选框仍然存在问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18024486/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com