2016-04-15 39 views
0

如何獲取每個複選框狀態基於相同的名稱屬性?

$("#btn").click(function() { 
 
\t var vals = []; 
 
\t $("body").find('input[name^=tc]:checked').each(function(e){ 
 
\t \t console.log(e + $(this).val()); 
 
    \t vals.push($(this).val()); 
 
\t }); 
 
\t alert(vals); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
1<input type="checkbox" name="tc0" value="Y"> 
 
<br /> 
 
2<input type="checkbox" name="tc1" value="Y"> 
 
<input type="checkbox" name="tc1" value="N"> 
 
<br /> 
 
3<input type="checkbox" name="tc2" value="Y"> 
 
<input type="checkbox" name="tc2" value="N"> 
 
<br /> 
 

 
<button id="btn">click</button>

如果我檢查Y代表TC0,Y爲TC1和Y爲TC2,並單擊該按鈕,我會得到Y,Y,Y。

如果我檢查Y是否爲tc0,tc1和N爲tc2並單擊按鈕,我將得到Y,N。

我除了得到Y,「」,N。

我該怎麼做?

+0

刪除'迭代:從selector..As checked'你不關心'元素的checked'狀態... – Rayon

+1

如果y和n檢查tc0 –

+0

如果刪除:選中,我將獲得所有複選框狀態。例如,如果我沒有檢查其中的一個,我會得到Y,Y,N,Y,N。我期望的操作系統「」,「」,「」「 – Dreams

回答

2

你可以在所有的複選框

$("#btn").click(function() { 
 
    var tmp = {}; 
 
    var vals = $('input[name^=tc]').map(function(e) { 
 
    var checked = $('input[name="' + this.name + '"]:checked'); 
 
    if (!tmp[this.name]) { 
 
     tmp[this.name] = true; 
 
     if (checked.length > 1) { 
 
     return [checked.map(function() { 
 
      return this.value; 
 
     }).get()]; 
 
     } else { 
 
     return checked.val() || ''; 
 
     } 
 
    }; 
 
    }).get(); 
 
    snippet.log(JSON.stringify(vals)); 
 
});
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 --> 
 
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
1 
 
<input type="checkbox" name="tc0" value="Y"> 
 
<br />2 
 
<input type="checkbox" name="tc1" value="Y"> 
 
<input type="checkbox" name="tc1" value="N"> 
 
<br />3 
 
<input type="checkbox" name="tc2" value="Y"> 
 
<input type="checkbox" name="tc2" value="N"> 
 
<br /> 
 

 
<button id="btn">click</button>

+0

可以返回數組嗎? – Dreams