无法通过 javascript 正确获取选中的复选框

Not able to properly obtain selected checkboxes through javascript

我有一个 jsp 页面,其中有一定数量的动态生成的复选框。

这是 jsp 页面的代码片段:

      <form>
            <br>
            <table align="center" border="1">
            <tr><th>Employee ID</th><th>SkillSet</th><th>Experience</th><th>Assign</th></tr>
            <c:forEach var="bean" items="${rteorbalssn}">
            <tr>
                <td><a id="${bean.pbeanempid}" onclick="funcredi(this.id)" href="#">${bean.pbeanempid}</a></td>
                <td>${bean.pbeanskill}</td>
                <td>${bean.pbeanexp}</td>
                <td><input type="checkbox" id="${bean.pbeanempid}" name="assignment" ></td>
            </tr>
            </c:forEach>
            </table>
              <br><table align="center"><tr><td align="center"><input type="button" value="Submit" onclick="func(this.value,${rteorbalssn[0].clickcode})"/></td></tr>
            </table>
      </form>

还有我的javascript:

function func(clicked,projcode)
{
    if(clicked == 'Submit')
    {

        var count=0;
        var selected=[];
        for(var i=0; i < document.forms[0].assignment.length; i++){
            if(document.forms[0].assignment[i].checked)
                    {
                        selected.push(document.forms[0].assignment[i].id);
                        count++;
                    }
        }
        if(selected.length==0)
            alert("Atleast 1 employee must be assigned before submission!") 
        else 
        {
            alert("No of employees selected: "+count);
            selected.push(projcode);
            window.open("http://localhost:9090/HCLRMS/empasub?users="+selected,"_self");

        }
    }
}

案例:1

假设生成了 3 行:

    Employee ID  SkillSet  Experience  Assign 
-----------------------------------------------
    056415        JAVA,C        4         ❏ 
    545646        JAVA          1         ❏  
    387999        JAVA          6         ❏  

如果选中 1 个或多个复选框 is/are,javascript 会显示以下警告: 选择的员工数量:<1 或 2 或 3 根据 no.of 选择>

如果未选中复选框,javascript 会显示以下警告: 提交前必须至少分配 1 名员工! (即完美运行)

案例:2

假设生成了 1 行:

    Employee ID  SkillSet  Experience  Assign 
----------------------------------------------
    056415        JAVA,C        4         ❏ 

如果复选框被选中或未被选中,javascript 会显示以下警告: 提交前必须至少分配 1 名员工!

我哪里错了?

我不认为默认情况下在表单上有任何 属性 称为 "assignments"。您想要使用的是

行中的内容
var inputs = document.forms[0].getElementsByTagName("input")

    for (var i=0; i<inputs.length; i++) {

        if (inputs[i].type === "checkbox" && inputs[i].checked){
            // do your thing
        }

    }