Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.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_Html - Fatal编程技术网

Javascript 如果用户必须至少选中一个复选框,如何验证表单?

Javascript 如果用户必须至少选中一个复选框,如何验证表单?,javascript,html,Javascript,Html,我正在尝试验证表单是否至少选中了一个复选框。但是JavaScript函数没有验证它 function checkMe() { document.getElementById("frm").onsubmit = function() { if ((document.getElementById("c1").checked == false) && (document.getElementById("c2").checked == false) && (d

我正在尝试验证表单是否至少选中了一个复选框。但是JavaScript函数没有验证它

function checkMe() {
  document.getElementById("frm").onsubmit = function() {
    if ((document.getElementById("c1").checked == false) && (document.getElementById("c2").checked == false) && (document.getElementById("c3").checked == false) && (document.getElementById("c4").checked == false)) {
      alert("pleast tick atleast one");
      return false;
    } else {
      return true;
    }
  };
}
window.onload = function() {
  checkMe();
}
HTML代码在这里:在选中至少一个复选框之前不应提交它

<form action="xyz.php" id="frm" name="frm">
    <select name="loc">
    <option value="1">1</option>
        <option value="2">2</option>
        <option value="11">11</option>
        <option value="22">22</option>
    </select>
        <br><br><p>Services</p><br>
        <dd>
        <div class="multiSelect">
            <ul>
            <li>
                <input id="c1" type="checkbox" value="a" name="ch1">a
                </li>
                <li>
                <input id="c2" type="checkbox" value="b" name="ch2">b
                </li>
                <li>
                <input id="c3" type="checkbox" value="c" name="ch3">c
                </li>
                <li>
                <input id="c4" type="checkbox" value="d" name="ch4">d
                </li>
            </ul>
            </div>
        </dd>
        <br>
        <br><input type="submit" value="Done!" id="bttn">
    </form>

1.
2.
11
22


服务


  • A.
  • B
  • C
  • D



您的代码运行正常,没有任何错误。无需更改。看看下面的片段

另一件事是,在
if
条件下,不需要将
与false进行比较

函数checkMe(){
document.getElementById(“frm”).onsubmit=function(){
如果((!document.getElementById(“c1”)已选中)和(!document.getElementById(“c2”)已选中)和(!document.getElementById(“c3”)已选中)和(!document.getElementById(“c4”)已选中)){
console.log(“请至少勾选一个”);//检查控制台是否有警告
返回false;
}否则{
返回true;
}
};
}
window.onload=函数(){
检查我();
}

1.
2.
11
22


服务


  • A.
  • B
  • C
  • D


这是我的解决方案

function checkMe(){
         document.getElementById("frm").onsubmit=function(){
         var i,b=0;
         for(i=1;i<4;i++){
                  (function(i){
                            if(document.getElementById('c'+i).checked){
                            // if its checked, then increase b value
                                     b++
                            }
                  })(i);
         }
         return ((b>0)?true:false); /* return true if b value is 
         bigger than 0, 
         b is the value of checkboxes checked */
     };
}
window.onload = function() {
    checkMe();
}
函数checkMe(){
document.getElementById(“frm”).onsubmit=function(){
var i,b=0;
对于(i=1;i0)?true:false);/*如果b值为
大于0,
b是选中复选框的值*/
};
}
window.onload=函数(){
检查我();
}

更好的检查方法。

请分享您的html,以便更好地理解。谢谢!属性“checked”的值是布尔值,所以我们不能将(=)等于false吗?PS:我忘记了警报,您可以使用if条件添加它;