2016-04-15 37 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