如何发现至少有一个复选框被选中或没有使用javascript
how to find that atleast one checkbox is checked or not using javascript
我尝试了很多选项,但都没有成功。
主要的问题是,我有这么多复选框,它们都是通过php循环生成的,所以它们有相同的名称和id。我想在提交该表单时检查一下,至少应该检查一个。我已经尝试了很多功能,所以不确定哪一个应该粘贴在这里。所以,最好有人给我一些新的答案。
function Validate_Checkbox()
{
var chks=document.getElementsByTagName('input');
var hasChecked = false;
for (var i = 0; i < chks.length; i++)
{
if (chks[i].checked)
{
hasChecked = true;
break;
}
}
if (hasChecked == false)
{
alert("Please select at least one checkbox..!");
return false;
}
return true;
}
它在形式标签中被称为onsubmit="return Validate_Checkbox()"
。
基本上,我正在寻找一个JavaScript函数。
您的代码可以满足您所描述的目的。它可能更短,但没有明显的问题
缩短版
function validate_checkbox() {
var cbs = document.getElementsByTagName('input');
for (var i=0, len = cbs.length; i < len; i++)
if (cbs[i].type.toLowerCase() == 'checkbox' && cbs[i].checked)
return true;
alert("Please check at least one checkbox");
return false;
}
更短的版本(如果你不在乎旧的IE)
function validate_checkbox() {
var checked = document.querySelectorAll('input[type=checkbox]:checked').length;
if (!checked) alert("Please select at least one checkbox");
return !!checked;
}
注:
1) ID必须是唯一的-不能在多个元素中重复ID
2) 在JavaScript中,最好(出于超出本文范围的原因)将开头的大括号放在同一行,而不是下一行
3) 除非您计划实例化
如果您有其他类型的输入,如text
或submit
按钮,您的代码将失败。首先,您必须检查是否为复选框。
if (chks[i].type=="checkbox" && chks[i].checked)
或者,如果你使用jQuery ,事情会更容易
if ($('input:checked').length < 1){
//Nothing checked
}
函数似乎很好。你确定它被呼叫了吗?尝试使用firefox"Firebug"进行调试。打开firebug->脚本,然后在这个函数上设置断点。
为什么只在提交时检查它?我使用Mootools编写了一个函数,它在每个复选框上都被称为onchange,并选中同一div中的每个复选框。如果没有其他复选框被选中,用户就不能取消选中最后一个复选框。
<input type='checkbox' onChange='validateCheckboxes(this)' name='name' value='val' >
function validateCheckboxes(elem){
var checked = elem.checked;
elem.getParent().getElements("input[type=checkbox]").each(function(e){checked += e.checked});
if(checked == 0){
elem.checked = 1;
}
}
相关文章:
- Javascript复选框函数:;缺少:在属性id之后"
- 潜水没有在Bootstrap/Javascript复选框菜单中排队
- JavaScript 复选框全选、取消全选、反转选择
- 单击离开时选中的 JavaScript 复选框
- Javascript复选框验证:如果用户没有't选中特定复选框
- Javascript复选框逻辑错误
- Javascript复选框填充输入并将不同的值传递给表单
- 简单的 JavaScript 复选框验证
- JavaScript 复选框表 - 如何添加值并查找最高值
- Ajax JavaScript 复选框更改不起作用
- Javascript 复选框表单验证
- 使用 JavaScript 复选框事件切换 html 的可见性
- JavaScript - 复选框的作用类似于单选按钮
- jQuery / JavaScript 复选框显示多个和单个选择中选中的复选框的数量
- javascript 复选框 - 仅在引导模式确定时取消选中
- 设置 JQuery HTML javascript 复选框工作,但不显示为选中状态
- Javascript复选框已选中触发器问题
- Javascript复选框的问题
- Javascript复选框递增和递减
- Javascript-复选框onclick-+操作