Javascript 复选框上的验证无效

Javascript 复选框上的验证无效,javascript,php,css,html,Javascript,Php,Css,Html,我正在建立一个关于考勤管理的项目。在我的项目的一种形式中,我有多个复选框。我希望至少有一个复选框必须被选中的形式提交。我尝试使用Javascript,但问题是,即使选中了一个或多个复选框,它也会标记警报 以下是我的js代码: function validat(){ var a = document.getElementsByTagName("checkbox"); var bool=false; for(var i=0;i&

我正在建立一个关于考勤管理的项目。在我的项目的一种形式中,我有多个复选框。我希望至少有一个复选框必须被选中的形式提交。我尝试使用Javascript,但问题是,即使选中了一个或多个复选框,它也会标记警报

以下是我的js代码:

function validat(){
            var a = document.getElementsByTagName("checkbox");
            var bool=false;
            for(var i=0;i<a.length;i++){
                if(a[i].checked==true){
                    bool=true;
                }
            }
            if(bool){
                return true;
            }
            else{
                alert("Sorry!Please select checkbox corresponding to students involved in duty leaves.");
                return false;
            }
函数validate(){
var a=document.getElementsByTagName(“复选框”);
var bool=假;
对于(var i=0;i);

由于您至少需要选中一个复选框,因此不必循环检查表单中的所有复选框。在第一个找到的复选框中,您可以停止

function validat(){
    var checkboxes = document.getElementsByTagName("checkbox");
    var atLeastOneCheckBoxIsChecked = false;
    for( var i = 0; i < checkboxes.length; i++ ){
        if( checkboxes[i].checked == true ){
            atLeastOneCheckBoxIsChecked = true;
            break;
        }
    }

    if(atLeastOneCheckBoxIsChecked){
        return true;
    }
    else {
        alert("Sorry!Please select checkbox corresponding to students involved in duty leaves.");
        return false;
    }
}

这里有一个例子:

函数检查(){
var checkbox=document.querySelectorAll('input[type=“checkbox”]”);
var checkedOne=Array.prototype.slice.call(复选框).some(x=>x.checked);
如果(!checkedOne){
console.log('请至少选中一个框!');
}
控制台日志(checkedOne);
}

选择一些怪物特征
规模
角
爪

您需要获取
输入
元素,并检查
类型
是否为
复选框“

var a=document.getElementsByTagName(“输入”);
对于(变量i=0;i
更改您的线路

var a = document.getElementsByTagName("checkbox");


我希望您使用
jQuery
,但根据您目前拥有的,您需要这样做:

var a = document.getElementsByTagName("input");
然后:

if(a[i].type == 'checkbox' && a[i].checked==true){
  // Checked alert
}

if(bool){
var a = document.getElementsByTagName("checkbox");
var a = document.querySelectorAll('input[type="checkbox"]');     
var a = document.getElementsByTagName("input");
if(a[i].type == 'checkbox' && a[i].checked==true){
  // Checked alert
}