【问题标题】:How to check multiple checkboxes with JavaScript?如何使用 JavaScript 检查多个复选框?
【发布时间】:2014-06-04 04:42:18
【问题描述】:
我有多个复选框
<div class="data">
<span>
<input name="employee" type="checkbox" value="Alex"/>
<label for="employee">Alex</label>
</span>
<span>
<input name="employee" type="checkbox" value="Frank"/>
<label for="employee">Frank</label>
</span>
<span>
<input name="employee" type="checkbox" value="Mark"/>
<label for="employee">Mark</label>
</span>
</div>
如何找到所有选中的复选框并创建带有检查结果的json或数组?
【问题讨论】:
标签:
javascript
arrays
checkbox
【解决方案1】:
如果你只想使用纯/香草 JS,这里有一个例子:
HTML 头部
<script type="text/javascript">
function getCheckedCheckboxesFor(checkboxName) {
var checkboxes = document.querySelectorAll('input[name="' + checkboxName + '"]:checked'), values = [];
Array.prototype.forEach.call(checkboxes, function(el) {
values.push(el.value);
});
return values;
}
</script>
HTML 正文
<div class="data">
<span>
<input name="employee" type="checkbox" value="Alex"/>
<label for="employee">Alex</label>
</span>
<span>
<input name="employee" type="checkbox" value="Frank"/>
<label for="employee">Frank</label>
</span>
<span>
<input name="employee" type="checkbox" value="Mark"/>
<label for="employee">Mark</label>
</span>
<input type="button" onclick="alert(getCheckedCheckboxesFor('employee'));" value="Get Values" />
</div>
JS Fiddle 链接:http://jsfiddle.net/dY372/
【解决方案2】:
试试这个:
Fiddle
jQuery:
var selected = [];
$('.data input:checked').each(function() {
selected.push($(this).val());
});
Javascript:
var checkboxes = document.getElementsByName('employee');
var selected = [];
for (var i=0; i<checkboxes.length; i++) {
if (checkboxes[i].checked) {
selected.push(checkboxes[i].value);
}
}
【解决方案3】:
使用querySelectorAll:
var checked = document.querySelectorAll('[name="employee"]:checked');
支持:IE9+。
【解决方案4】:
var elements=document.getElementsByName('employee');
应该返回你需要的元素数组
DEMO
【解决方案5】:
function checked(){
var items=getElementsByname('checkbox');
var selectedlist=[];
for(var i=0; i<items.length; i++)
{
if(items[i].type=='checkbox' && items[i].checked==true)
selectedlist+=items[i].value+"\n";
}
alert(selectedlist);
}