我需要使用复选框,但没有提交按钮 - 它需要对用户已经在的页面产生影响,包含复选框的页面。
基本上,我有~10个复选框元素。用户选择一定数量的它们,然后单击按钮元素。当他们点击该元素时,我需要检测哪些复选框已被选中。使用最短的代码量,最好的方法是什么?
答案 0 :(得分:3)
让所有复选框共享同一个班级。
var allChecked = $(".checkBoxClass:checked");
这将返回班级checkBoxClass
中已选中复选框的列表。现在,您可以迭代每个元素并对它们进行操作。
for(var i=0; i<allChecked.length; i++) {
console.log("Checkbox " + $(allChecked[i]).val().toString() + " is checked");
}
答案 1 :(得分:0)
尝试:
<input type="checkbox" id="1" value="one"/>
<input type="checkbox" id="2" value="two"/>
<input type="checkbox" id="3" value="three"/>
<input type="button" onclick="validate()" value="Check"/>
<script type="text/javascript">
function validate(){
var chkArr = document.querySelectorAll('input[type="checkbox"]');
var notChecked='';
for(var i=0;i<chkArr.length;i++){
if(!chkArr[i].checked)
notChecked += chkArr[i].value
}
if(notChecked.length)
alert(notChecked);
}
</script>
答案 2 :(得分:0)
任何这些都应该有效:
$('input:checked');
$('input:checkbox:checked');
$('input:checkbox').filter(':checked');