2012-08-01 50 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); 
     }); 
    }); 
}); 
相關問題