如何计算表单中的所有复选框(Javascript)
how to count all check boxes in a form (Javascript)
我有许多动态生成的复选框。所以我不知道每次生成多少个复选框。我需要一些JavaScript方法来计算表单中复选框的总数。
<input type="checkbox" value="username1" name="check[0]" id="1" /><br/>
<input type="checkbox" value="userusername2" name="check[1]" id="1" /><br/>
<input type="checkbox" value="userusername3" name="check[2]" id="1" /><br/>
我不能更改复选框的名称,因为我需要将值作为数组发送到服务器端PHP脚本。
由于所有其他答案都是基于jquery的,所以我将提供一个纯javascript解决方案。假设以下形式:
<form id="myform">
<input type="checkbox" value="username1" name="check[0]" /><br/>
<input type="checkbox" value="userusername2" name="check[1]" /><br/>
<input type="checkbox" value="userusername3" name="check[2]" /><br/>
</form>
您可以使用以下逻辑计算复选框元素的数量:
<script type="text/javascript">
var myform = document.getElementById('myform');
var inputTags = myform.getElementsByTagName('input');
var checkboxCount = 0;
for (var i=0, length = inputTags.length; i<length; i++) {
if (inputTags[i].type == 'checkbox') {
checkboxCount++;
}
}
alert(checkboxCount);
</script>
BTW:正如其他人所指出的,任何HTML标记中的id
属性在文档中都应该是唯一的。在上面的示例HTML中,我省略了您的id="1"
属性。
更新:
如果你只想在不使用包含表单元素的情况下计算整个页面上的所有复选框元素,这应该有效:
<script type="text/javascript">
var inputTags = document.getElementsByTagName('input');
var checkboxCount = 0;
for (var i=0, length = inputTags.length; i<length; i++) {
if (inputTags[i].type == 'checkbox') {
checkboxCount++;
}
}
alert(checkboxCount);
</script>
在纯JavaScript中:
var myForm = document.forms[nameOrIndex];
var inputs = myForm.getElementsByTagName('input');
var checkboxes = [];
for(var i=0;i<inputs.length;i++){
if(inputs[i].getAttribute('type').toLowerCase() == 'checkbox'){
checkboxes.push(inputs[i]);
}
}
alert(checkboxes.length);
我会选择:
alert(document.querySelectorAll("input[type=checkbox]").length);
如果你想要一个特定的表单,你需要选择该表单,并将其作为调用querySelectorAll的基础,而不是文档,或者更改选择器以包含该表单。
<form id="aForm">
<input type="checkbox" value="userusername2" name="check[1]" id="1" /><br/>
<input type="checkbox" value="userusername3" name="check[2]" id="1" /><br/>
</form>
<form id="bForm">
<input type="checkbox" value="username1" name="check[0]" id="1" /><br/>
<input type="checkbox" value="userusername2" name="check[1]" id="1" /><br/>
<input type="checkbox" value="userusername3" name="check[2]" id="1" /><br/>
</form>
然后使用:
alert(document.querySelectorAll("#aForm > input[type=checkbox]").length); //shows 2
alert(document.querySelectorAll("#bForm > input[type=checkbox]").length); //shows 3
注意:Selectors API仅适用于以下新浏览器:Internet Explorer 8、Firefox 3.5、Safari 3.1、Chrome 1和Opera 10。
alert( $("form input[type='checkbox']").length );
将使用jQuery为您提供表单中的所有复选框。
当你用php
标记你的问题,并且你似乎已经对表单字段使用了某种编号时,你也可以只使用echo
,这个php计数器对应一个javascript变量:
<?php
//
?>
<script language="javascript" type="text/javascript">
var checkbox_counter = <?php echo $your_counter_in_php; ?>
</script>
<?php
//
?>
顺便说一句,在html中,一个页面上只能有一个id
,它不能以数字开头。
您可以使用jquery
var len = $('input:checkbox').length;
alert(len);
工作演示
如果你有jQuery,你可以做一些类似的事情
alert ($(':checkbox').length ());
如果没有,那么您将不得不document.getElementsByTagName ('input')
,迭代您返回的集合,并在每次遇到类型属性设置为复选框的集合时递增计数器。
- 为复选框javascript指定两个值
- Javascript复选框函数:;缺少:在属性id之后"
- JavaScript-切换“;全部检查”;复选框true/false
- 如何从javascript/jquery中的复选框中获取布尔值
- 如何使用javascript函数在gridview中按行启用/禁用复选框
- 使用javascript在页面加载时取消选中所有复选框
- 更改类以选中复选框JavaScript
- 选中所有复选框javascript
- 方法通过复选框javascript获取触发器
- 选中所有复选框 JavaScript
- 复选框 Javascript 函数在 Bootstrap modal 中不起作用
- 使用复选框 JavaScript 禁用按钮
- 隐藏输入未正确选择的自定义复选框.Javascript需要调整
- 不带POSTING值的求和复选框-Javascript
- 自定义警报与复选框- Javascript
- 按钮,根据字符串开始选择复选框- Javascript
- 简单的复选框javascript不起作用
- 禁用和启用复选框Javascript
- 如何计算表单中的所有复选框(Javascript)
- 数据类型检查提示复选框javascript