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

时间:2015-01-18 19:12:53

标签: javascript jstl

我有一个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         ❏  

如果选择了一个或多个复选框,则javascript会显示以下警告: 没有选择员工:&lt; 1或2或3,根据no.of选择&gt;

OR

如果未选中任何复选框,则javascript会显示以下警告: Atleast 1员工必须在提交前分配! (即它完美地运作)

案例:2

假设生成了1行:

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

如果选中或未选中该复选框,则javascript会显示以下警告: Atleast 1员工必须在提交前分配!

我哪里错了?

1 个答案:

答案 0 :(得分:1)

我不相信有任何称为&#34;任务&#34;默认情况下在表单上。你想要使用的是

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
        }

    }