if i check 3 checkboxes from attached image
我要选中多个复选框并将其值存储到数组中。
我正在使用下面的代码,但它仅存储一个值。
<input type="checkbox" id="btnApprove" name="btnApprove" onclick="getTaskId();" value="1" />
<input type="checkbox" id="btnApprove" name="btnApprove" onclick="getTaskId();" value="2" />
<script type="text/javascript">
function getTaskId(){
var id=Array();
id = document.getElementById('btnApprove').value;
console.log(id);
}
</script>
答案 0 :(得分:0)
同一文档中的相同ID无法检测,因此您必须避免使用相同ID,您可以这样做
<input type="checkbox" name="btnApprove" onclick="getTaskId(this);" value="1" />
<input type="checkbox" name="btnApprove" onclick="getTaskId(this);" value="2" />
<script type="text/javascript">
function getTaskId(evnt){
var id = evnt.value;
console.log(id);
}
</script>
对于“组”复选框结果作为选中项目的数组,您可以像下面这样使用
<html>
<body>
<input type="checkbox" name="btnApprove[]" onclick="getTaskId();" value="1" />
<input type="checkbox" name="btnApprove[]" onclick="getTaskId();" value="2" />
<input type="checkbox" name="btnApprove[]" onclick="getTaskId();" value="3" />
</body>
</html>
<script type="text/javascript">
function getTaskId(){
var array = []
var checkboxes = document.querySelectorAll('input[type=checkbox]:checked')
for (var i = 0; i < checkboxes.length; i++) {
array.push(checkboxes[i].value)
}
console.log(array);
}
</script>
答案 1 :(得分:-1)
我找到了解决方案。
function printChecked(){
var items=document.getElementsByName('btnApprove');
var selectedItems="";
for(var i=0; i<items.length; i++){
if(items[i].type=='checkbox' && items[i].checked==true)
selectedItems+=items[i].value+",";
}
console.log(selectedItems);
}
<input type="checkbox" id="btnApprove" name="btnApprove" value="1" checked/>
<input type="checkbox" id="btnApprove" name="btnApprove" value="2" checked/>
<input type="checkbox" id="btnApprove" name="btnApprove" value="3" checked/>
<input type="submit" name="RunScripts" value="Run Scripts" onclick="printChecked();"/>