JavaScript用于检测复选框并检查并执行操作

时间:2017-11-16 14:28:53

标签: javascript html jsp checkbox

我有一个jsp页面,其复选框声明如此

Traceback (most recent call last):
File "hoteltranselvania.py", line 25, in <module>
if len(input_pass == 0):
TypeError: object of type 'bool' has no len()

它包含在for循环中,基本上每个会话都会显示一个复选框。一切正常,我没有问题。

当前选中复选框时,此功能已运行

<form:checkbox path="affProgramSessionList[${status.index}].programSessionDetailId" id="checkbox_${session.id}" data-id="${session.id}" value="${session.id}" />

这会导致其他一些复选框被检查,并显示隐藏的一些div。

我现在正在添加功能,如果有人检查了一些复选框并保存并返回到页面,则会检查这些复选框。

我有那部分工作,但我无法使功能正常运行。

我有以下

$("input[id*='checkbox_']").each(function () {
    $(this).click(function(){
        var dataid = $(this).attr("data-id");
        var divId = "fullAttendence_" + dataid;
        var divIdAttendee = "attendeeType_" + dataid;

        $('#' + divId).toggle(this.checked);
        $('#' + divIdAttendee).toggle(this.checked);
    });

});

当我使用console.log测试它时,会调用此函数。

问题在于

if ($("input[id*='checkbox_']").is(':checked')) {

    var dataid = $(this).attr("data-id");
    var divId = "fullAttendence_" + dataid;
    var divIdAttendee = "attendeeType_" + dataid;

    $('#' + divId).toggle(this.checked);
    $('#' + divIdAttendee).toggle(this.checked);
}

回来了

var dataid = $(this).attr("data-id");

现在我的假设是,我的新函数检查复选框和另一个调用函数的工作方式完全不同,我的函数不知道检查了哪个复选框只是至少有一个是?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

if ($("input[id*='checkbox_']").is(':checked')) {

...将过滤掉第一个检查过的输入并对其进行操作。如果要迭代所有复选框,请使用以下构造:

$("input[id*='checkbox_']").each(function() {
    if ($(this).is(':checked')) {
        // do something
    }
});