Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript允许一个复选框或一组复选框_Javascript - Fatal编程技术网

JavaScript允许一个复选框或一组复选框

JavaScript允许一个复选框或一组复选框,javascript,Javascript,我有一个带有四个复选框的div,应该允许用户选择第一个复选框或二、三和四的组合,但不能同时选择。示例场景: 第一个复选框或第二个复选框 第一个复选框或第三个复选框 第一个复选框或第四个复选框 第一个复选框或第二个和第三个复选框 第一个复选框或第三个和第四个复选框 第一个复选框或第二个和第四个复选框 第一个复选框或第二个、第三个和第四个复选框 div是这样的: <div class="question" id="someFilters"> <label>Some S

我有一个带有四个复选框的div,应该允许用户选择第一个复选框或二、三和四的组合,但不能同时选择。示例场景:

第一个复选框或第二个复选框 第一个复选框或第三个复选框 第一个复选框或第四个复选框 第一个复选框或第二个和第三个复选框 第一个复选框或第三个和第四个复选框 第一个复选框或第二个和第四个复选框 第一个复选框或第二个、第三个和第四个复选框 div是这样的:

<div class="question" id="someFilters">
    <label>Some Suppliers</label>
        <div class="someclass">
            <form:checkbox id="firstcheckbox" value="First checkbox"/>
                <label class="inputtext">First Checkbox</label>
            <form:checkbox id="secondcheckbox" value="Second checkbox"/>
                <label class="inputtext">Second Checkbox</label>
            <form:checkbox id="thirdcheckbox" value="Third checkbox"/>
                <label class="inputtext">Third Checkbox</label>
            <form:checkbox id="fourthcheckbox" value="Fourth checkbox"/>
                <label class="inputtext">Fourth Checkbox</label>
        </div>
</div>

非常感谢您的帮助。

您描述的情况的逻辑很简单: 不得选中第一个框或所有其他框

此脚本中有效的变量将根据是否满足该条件分配一个布尔值。 此赋值语句之所以有效,是因为变量cs之前已通过.querySelectorAllinput按顺序分配了一个包含所有输入元素的节点列表-尽管您可能希望使用按名称、类或某些其他属性以元素为目标的选择器

请注意,您发布的html格式不正确。具体来说,不表示html元素

const cs=document.queryselectoralinput; document.querySelectorbutton.addEventListener单击,验证; 功能验证{ 常量valid=!cs[0]。选中| |!cs[1]。选中&&!cs[2]。选中&&!cs[3]。选中; console.logvalid?好:坏; } 1. 2. 3. 4.
ValidateI写了一个答案,因为我有时间,但是如果你想知道为什么你看到的是更多的反对票而不是回答,很可能是因为你的问题没有显示出任何试图自己找到解决方案的尝试,即使你确实做了这样的尝试。谢谢,@Cat,验证逻辑帮助我解决了这个问题。此外,你的反对意见没有显示出我方的努力,这一点也值得注意。干杯,太好了。我对关于html的最后一个注释进行了快速编辑,因为我把它格式化错了。如果有机会,记得将答案标记为已接受。