2012-08-01 62 views
2

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 /> 

我的想法是把人的价值,并将其保存在一个事务所值是这样的:

String chk = "chk1, chk2, chk3"; 
String chk_group2 = "A,B,D"; 

我在寻找一个可以从请求中获取所有值的循环,并将值放入一个单独的字符串中。我尝试了清单,但它不工作。 我使用JSP和Oracle 10g的数据库

THK

+0

此客户端是否需要构建您的列表?或者在发布回服务器之后?发回服务器后发送到 – 2012-08-01 15:47:16

+0

。 但如果是客户端,我会做一些发送到服务器。所以无论如何将有所帮助。 – 2012-08-01 16:20:39

回答

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(', '); 
+0

我的答案假设你正在寻找JavaScript,我想我在那里看到一个JavaScript标记。 OOPS! – nebulae 2012-08-01 16:02:34

0

由于我偶然发现了这个问题,即使它已经发布了很长时间,其他人也可能会觉得它也有帮助。

您可以使用jquery.each轻松访问复选框;例如:

$(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); 
     }); 
    }); 
}); 
相关问题