a我有一个非常大的表格,有很多ckeckbox和一个选择多个列表。
所有这些选项都是这样的:
<input type="checkbox" name="chk1" id="chk1" />chk1<br />
<input type="checkbox" name="chk2" id="chk2" />chk2<br />
<input type="checkbox" name="chk3" id="chk3" />chk3<br />
<input type="checkbox" name="chk4" id="chk4" />chk4<br />
<input type="checkbox" name="chk1_group2" id="chk1_group2" />A<br />
<input type="checkbox" name="chk2_group2" id="chk2_group2" />B<br />
<input type="checkbox" name="chk3_group2" id="chk3_group2" />C<br />
<input type="checkbox" name="chk4_group2" id="chk4_group2" />D<br />
我的想法是取值并将它们保存在一个sigle值中,如下所示:
String chk = "chk1, chk2, chk3";
String chk_group2 = "A,B,D";
我正在寻找一个可以从请求中获取所有vaule并将值放在sigle字符串中的循环。我尝试了列表,但它不起作用。 我正在使用JSP和Oracle 10g DB
THK
答案 0 :(得分:1)
我首先给每个复选框一个“组”属性(或同等区别的东西),以指定它应代表的组,如下所示:
...
<input type="checkbox" group="group1" name="chk4" id="chk4" />chk4<br />
<input type="checkbox" group="group2" name="chk1_group2" id="chk1_group2" />A<br />
...
然后用这样的东西解析它们:
var group1 = [];
var group2 = [];
function parseSelected(){
// maybe a more specific query for this
var checkboxes = document.getElementsByTagName("input");
for (var i=0; i<checkboxes.length; i++) {
var checkbox=checkboxes[i];
// if its not checked, continue...
if(!checkbox.checked) continue;
if(checkbox.getAttribute("group")=="group1"){
group1.push(checkbox.getAttribute("name"));
} else if(checkbox.getAttribute("group")=="group2"){
group2.push(checkbox.getAttribute("name"));
}
}
}
并在某个地方某个地方(可能提交表格?)
parseSelected();
var strGroup1 = group1.join(', ');
var strGroup2 = group2.join(', ');
答案 1 :(得分:0)
因为我偶然发现了这个问题..尽管已经发布了很长时间,但其他人也可能觉得它很有帮助。
您可以使用jquery.each轻松访问复选框; e.g:
$(document).ready(function () {
$('th input[type=checkbox]').each(function() {
$(this).click(function (e) {
var table = $(e.target).closest('table');
$('td input:checkbox', table).prop('checked', this.checked);
});
});
});