我有一个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");
}
}
}
假设生成了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员工必须在提交前分配! (即它完美地运作)
假设生成了1行:
Employee ID SkillSet Experience Assign
----------------------------------------------
056415 JAVA,C 4 ❏
如果选中或未选中该复选框,则javascript会显示以下警告: Atleast 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
}
}