$('input[name^=tc]').click(function(){
var attr = $(this).attr('name');
$(this).siblings('input[name='+attr+']').prop('checked', false);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
1
<input name="tc0" value="Y" type="checkbox">
<input name="tc0" value="N"type="checkbox">
2
<input name="tc1" value="Y" type="checkbox">
<input name="tc1" value="N" type="checkbox">
3
<input name="tc2" value="Y" type="checkbox">
<input name="tc2" value="N" type="checkbox">
如何根据名称获取所有复选框的最终值? 例如,如果我检查tc0的值“Y”,tc1的值为“N”,tc2的值为“Y”。
我怎样才能将“YNN”或[“Y”,“N”,“N”]带回给我?
答案 0 :(得分:1)
首先,我假设您没有使用RADIO而不是CHECKBOX,因为RADIO在没有额外的Jquery点击的情况下完成每组的单一检查。
//changed CLICK to CHANGE
$('input[name^=tc]').change(function(){
var attr = $(this).attr('name');
$(this).siblings('input[name='+attr+']').prop('checked', false);
});
//get ids
vals = "";
$("input[type=checkbox]:checked").each(function(){
vals += $(this).val();
});
console.log(vals);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input checked name="tc0" value="Y" type="checkbox">
<input name="tc0" value="N"type="checkbox">
<input checked name="tc1" value="Y" type="checkbox">
<input name="tc1" value="N" type="checkbox">
<input checked name="tc2" value="Y" type="checkbox">
<input name="tc2" value="N" type="checkbox">
答案 1 :(得分:1)
逻辑要求使用单选按钮而不是复选框。这是使用单选按钮的解决方案
$('#getResult').on('click', getResult);
function getResult(){
var result=[];
$('input[name^=tc]:checked').each(function(){
result.push($(this).val());
});
alert(result.toString());
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
1<br>
<input name="tc0" value="Y" type="radio">Yes <br>
<input name="tc0" value="N"type="radio">No<br>
2<br>
<input name="tc1" value="Y" type="radio">Yes <br>
<input name="tc1" value="N" type="radio">No<br>
3<br>
<input name="tc2" value="Y" type="radio">Yes <br>
<input name="tc2" value="N" type="radio">No<br>
<button id="getResult">Get Result</button>
&#13;