【发布时间】:2021-08-24 17:51:29
【问题描述】:
我正在开发一个以 Java 作为后端技术、JSP 和 JS 在前端使用 jQuery 的项目。我是 JS 和 jQuery 的新手,或者至少我不是专业人士,所以我在这里尽力做到最好。
所以问题是:我正在处理这个屏幕,它显示两个或更多用户以及一些与他们相关的信息。每个用户(及其信息)位于不同的选项卡上。每个用户/选项卡都有一个复选框,必须选中才能进入下一个屏幕。因此,如果我们有两个用户,则必须选中两个复选框。如果我们有五个,全部五个。屏幕是这样的(记住粉红色的是选中的用户):
所以问题是,有时我的逻辑运行良好,我可以在选中所有复选框后进入下一个屏幕。但是在刷新页面后的其他时候,正如我使用一些console.logs 发现的那样,第一个用户的复选框正在执行所有复选框的代码,而其余的复选框没有做任何事情。所以我不能进入下一个屏幕,除非我选中所有用户中的复选框,最后一个是第一个。如果我取消选中第二个用户上的复选框,也会发生同样的情况,它什么也不做,因为它的代码没有执行。
我有一个关于更改的 JS 函数,它检查是否所有复选框都被选中,以便将箭头显示到下一个屏幕。像这样:
$("#demPricesCheckbox").change(function () {
var checkboxes = document.querySelectorAll("[id='demPricesCheckbox']");
var show = true;
for (var i = 0; i < checkboxes.length && show; i++) {
if (!checkboxes[i].checked) show = false;
}
if (show) {
ContractPrices.showForwardButton();
} else {
ContractPrices.hideForwardButton();
}
});
我的复选框 HTML 内容如下:
<label class="sub-checkbox" style="margin-left: 100px; margin-top: 5px">
<input
type="checkbox"
id="demPricesCheckbox"
name="demPricesCheckbox"
value="1"
/>
<branches:message code="NAME_OF_CHECKBOX" />
</label>
有什么提示吗?我将不胜感激任何关于为什么会发生这种情况的想法或解释。如果您需要更多信息,请询问我。
感谢您的宝贵时间!请原谅我的英语不好!
【问题讨论】:
标签: javascript jquery checkbox logic