这是我的代码:
<form action="test.php" method="post">
<input type="checkbox" value="value 1" onClick="updateCards(this.value);">
<input type="checkbox" value="value 2" onClick="updateCards(this.value);">
<input type="checkbox" value="value 3" onClick="updateCards(this.value);">
<input type="checkbox" value="value 4" onClick="updateCards(this.value);">
<input type="checkbox" value="value 5" onClick="updateCards(this.value);">
</form>
如何获取当前选中的所有复选框?
答案 0 :(得分:1)
尝试
<form id="myform" action="test.php" method="post">
然后
function getChcked(){
var form = document.getElementById('myform');
var chks = form.querySelectorAll('input[type="checkbox"]');
var checked = [];
for(var i = 0; i < chks.length; i++){
if(chks[i].checked){
checked.push(chks[i].value)
}
}
return checked;
}
演示:Fiddle
答案 1 :(得分:1)
两种快捷方式可以为表单元素提供ID。获取对它的引用并遍历其所有子元素(这是所有复选框)并检查checked属性的值是什么。
您还可以为所有复选框命名并使用document.getElementsByClassName
,然后循环搜索结果以检查checked属性。但是我认为IE8中可能不支持第二种方法,请不要引用我,但我会使用第一种方法。
像这样的东西
<form action="test.php" method="post" id="myForm">
<input type="checkbox" value="value 1" onClick="updateCards(this.value);">
<input type="checkbox" value="value 2" onClick="updateCards(this.value);">
<input type="checkbox" value="value 3" onClick="updateCards(this.value);">
<input type="checkbox" value="value 4" onClick="updateCards(this.value);">
<input type="checkbox" value="value 5" onClick="updateCards(this.value);">
</form>
var getValues = function() {
var nodes = document.getElementById("myForm").children;
var checkedValues = [],
length = nodes.length,
i = 0;
for(i;i<length;i++){
if(nodes[i].checked)
checkedValues.push(nodes[i].value);
}
return checkedValues;
};
答案 2 :(得分:0)
function getCheckedBoxes(chkboxName) {
var checkboxes = document.getElementsByName(chkboxName);
var checkboxesChecked = [];
// loop over them all
for (var i=0; i<checkboxes.length; i++) {
// And stick the checked ones onto an array...
if (checkboxes[i].checked) {
checkboxesChecked.push(checkboxes[i]);
}
}
// Return the array if it is non-empty, or null
return checkboxesChecked.length > 0 ? checkboxesChecked : null;
}
// Call as
var checkedBoxes = getCheckedBoxes("mycheckboxes");
也可以试试这个
$("#clickme").click(function(e){
var selected = $("#checkboxes input:checked").map(function(i,el){return el.name;}).get();
alert("selected = [" + selected + "]\nas string = \"" + selected.join(";") + "\"");
});
答案 3 :(得分:0)
这是一种做同样的快捷方式:
var nodeArray = document.querySelectorAll('form input:checked'),
i = nodeArray.length, selected = [];
while(i--) selected.push(nodeArray[i].value);
答案 4 :(得分:0)
如果你只使用jQuery,这会更简单:
function GetChecked()
{
return $("input:checked");
}