Javascript 如何检查是否选中表单中的一个或多个复选框(仅当显示div时)

Javascript 如何检查是否选中表单中的一个或多个复选框(仅当显示div时),javascript,html,forms,checkbox,Javascript,Html,Forms,Checkbox,我需要帮助在提交时验证表单。它应该检查是否选中了一个或多个复选框,否则将显示错误消息。我目前已经让它工作,但问题是复选框选项显示后,选择单选按钮的形式 我现在的代码仍然显示错误消息,即使没有显示div,这是一个大问题,因为用户没有看到复选框选项 我希望复选框错误消息仅在用户选择单选按钮“否”时显示,因此需要选中复选框。如果他们选择单选按钮“是”,并且未显示此复选框div,则我不希望在提交时显示错误消息 函数隐藏(){ document.getElementById('hidden').styl

我需要帮助在提交时验证表单。它应该检查是否选中了一个或多个复选框,否则将显示错误消息。我目前已经让它工作,但问题是复选框选项显示后,选择单选按钮的形式

我现在的代码仍然显示错误消息,即使没有显示
div
,这是一个大问题,因为用户没有看到复选框选项

我希望复选框错误消息仅在用户选择单选按钮“否”时显示,因此需要选中复选框。如果他们选择单选按钮“是”,并且未显示此复选框
div
,则我不希望在提交时显示错误消息

函数隐藏(){
document.getElementById('hidden').style.display='none';
}
函数show(){
document.getElementById('hidden').style.display='block';
}
函数validateForm(){
var检查=假;
var elements=document.getElementsByName(“勾号”);
对于(var i=0;i

本课程在我的工作计划和学习协议中确定



我参加本次会议是因为(勾选所有适用项)

这将有助于我发展当前角色所需的技能和知识
它将帮助我发展未来可能担任的角色/工作的技能和知识
在我的绩效管理讨论中,这被确定为一种需要
我的经理建议我参加
我对内容感兴趣
由于您的出席,您希望实现什么目标?例如,“我想学习写更好的电子邮件来提高我的沟通技巧。”

提交
尝试(选择下面的“否”)

函数验证表单(e){
让inp=[…document.getElementsByName(“勾选”)];
如果(!inp.some(i=>i.checked)和&chk.checked){
e、 预防默认值();
提醒('您必须选择参加的原因!');
}
}
//显示隐藏文本
函数hide(){
document.getElementById('hidden').style.display='none';
}
函数show(){
document.getElementById('hidden').style.display='block';
}

本课程在我的工作计划和学习协议中确定



我参加本次会议是因为(勾选所有适用项)

这将有助于我发展当前角色所需的技能和知识
它将帮助我发展未来可能担任的角色/工作的技能和知识
在我的绩效管理讨论中,这被确定为一种需要
我的经理建议我参加
我对内容感兴趣
由于您的出席,您希望实现什么目标?例如,“我想学习写更好的电子邮件来提高我的沟通技巧。”

提交
这是老办法。只需检查div的display属性,并在该属性中仅将您的标志设置为false

function validateForm() {
    var checked;
    if(document.getElementById("hidden").style.display == "block") {
        checked = false;
        var elements = document.getElementsByName("tick");
        for (var i=0; i < elements.length; i++) {
            if (elements[i].checked) {
                checked = true;
            }
        }
    }

    if (checked===false) {
        alert('You must select why you are attending!');
    }
    return checked;
}
函数validateForm(){
var检查;
if(document.getElementById(“隐藏”).style.display==“块”){
选中=错误;
var elements=document.getElementsByName(“勾号”);
对于(var i=0;i
使用required意味着用户必须选中每个复选框。我想检查一个或多个。感谢您,解释您的代码是如何工作的以及OP为什么不工作会很有用。我们使用event
preventDefault
在表单无效时不允许发送表单。我们还使用array
some
检查是否选中了某些复选框。我们还使用
spread syntax
将getElementsByName节点列表转换为数组。div显示问题如何?感谢您的代码,但我需要的帮助是仅在选择单选按钮“否”时显示错误消息(从而显示复选框),否则,div将保持隐藏,如果未选中复选框,则不会出现错误消息。如果我将输入类型设置为复选框,则在div id“hidden”中,我刚刚解决了我的问题,这是否有帮助?谢谢你
function validateForm() {
    var checked;
    if(document.getElementById("hidden").style.display == "block") {
        checked = false;
        var elements = document.getElementsByName("tick");
        for (var i=0; i < elements.length; i++) {
            if (elements[i].checked) {
                checked = true;
            }
        }
    }

    if (checked===false) {
        alert('You must select why you are attending!');
    }
    return checked;
}