我正在编写一个java servlet应用程序。在那里,我有一个动态表,我想获得所选的选项按钮计数。
我想查找提交了多少个复选框值。然后我可以根据提交的复选框值的数量来寻找数据库插入循环。
这是我的表单代码
<form role="form" id="user_allowed_unis" name="user_allowed_unis" class="form-horizontal" action="../UnisPerUserCtrl" method="post">
<input type="hidden" name="action" id="action" value="USER_ALLOWED_UNIS">
<div class="form-group col-lg-12">
<label class="col-lg-6 control-label">User Email</label>
<div class="col-lg-4">
<input type="text" id="email" data-toggle="email" class="form-control" name="email" value="" maxlength="100">
</div>
<span class="input-group-btn"><button class="btn btn-default" onclick="createLovWindow('Users');" type="button"><i class="fa fa-search"></i></button></span>
</div>
<div class="input-group"> <span class="input-group-addon">Search</span>
<input id="filter" type="text" class="form-control" placeholder="Search University...">
</div>
<table class="table table-bordered table-hover table-striped">
<thead>
<tr>
<th>Id</th>
<th>University Id</th>
<th>University</th>
<th>Selected</th>
</tr>
</thead>
<tbody class="searchable">
<%
UniversityMgt uni=new UniversityMgt();
ResultSet rs = uni.Get_Universities(dbParam);
int id = 1;
while (rs.next()) {
String uni_id = rs.getString("id");
String uni_name = rs.getString("name");
%>
<tr>
<td><%=id%></td>
<td><%=uni_id%></a></td>
<td><%=uni_name%></td>
<td>
<div class="material-switch">
<input id="uniOption" name="<%=uni_id%>^uniOption" type="checkbox"/>
</div>
</td>
</tr>
<input name="option_count" type="hidden" value="<%=id%>"/>
<% id++;
}
while (rs.previous()) {
}
%>
</tbody>
</table>
</form>
到目前为止,我已经厌倦了将此值作为我的id值发送,这表示我的表索引值,但它没有成功。无论我选中的复选框如何,它总是提交1。
答案 0 :(得分:0)
我建议的是将复选框代码写为
<input id="<%=uni_id%>^uniOption" name="uniOption" type="checkbox"/>
这意味着保持所有复选框的name属性相同,并且每个复选框的id属性都是唯一的。因为在javascript中,不同的元素可以具有相同的名称,但id应该是唯一的。
现在,当您提交页面调用JavaScript函数时,就在代码下面:
var checkboxArray = document.getElementsByName("uniOption");
var counter =0;
for(var i=0;i<checkboxArray.length;i++){
if(checkboxArray[i].checked){
// here you will get count of all the checked check boxes
counter++;
}
}
希望这有帮助!