Javascript jQuery:验证是否选中了多个必需的复选框之一

Javascript jQuery:验证是否选中了多个必需的复选框之一,javascript,jquery,input,checkbox,Javascript,Jquery,Input,Checkbox,我有一个带有多组复选框的表单(除其他外)。其中一些组是必填字段(该组中至少需要选中一个复选框) 我可以判断一个组是否选中了复选框,但我没有将其设置为强制。此外,我需要得到一个长字符串的值所选的复选框(es)。我需要一个字符串,如果用户选中,比如group1中的前3个复选框,则字符串为: “零| 1瓦尔| 2瓦尔” 代码是我的原始代码的简化版本。这是jFiddle: 此外,为方便起见,我还将代码包括在此处: jQuery: function countChecked() { //Grou

我有一个带有多组复选框的表单(除其他外)。其中一些组是必填字段(该组中至少需要选中一个复选框)

我可以判断一个组是否选中了复选框,但我没有将其设置为强制。此外,我需要得到一个长字符串的值所选的复选框(es)。我需要一个字符串,如果用户选中,比如group1中的前3个复选框,则字符串为:
“零| 1瓦尔| 2瓦尔”

代码是我的原始代码的简化版本。这是jFiddle:

此外,为方便起见,我还将代码包括在此处:

jQuery

function countChecked() {
    //Group 1
    var n = $("#group1 input:checked").length;
    $("#count").text(n + (n <= 1 ? " is" : " are") + " checked!");
    $("#group1 input:checked").each(function() {
        txt += ($(this).val() + " | ");
        $("#selection1").text(txt);
        alert($(this).val() + " | ");
    });


    //Group 2
    var n = $("#group2 input:checked").length;
    $("#count").text(n + (n <= 1 ? " is" : " are") + " checked!");
    $("#group2 input:checked").each(function() {
        txt += ($(this).val() + " | ");
        $("#selection3").text(txt);
        alert($(this).val() + " | ");
    });
}

countChecked();
$(":checkbox").click(countChecked);
<form>
  <div id="group1">
    <p> *Please select a box (Mandatory)</p>
    <input type="checkbox" name="ckb_unit[]" value="zero" />
    <input type="checkbox" name="ckb_unit[]" value="1 val" />
    <input type="checkbox" name="ckb_unit[]" value="2 val" />
    <input type="checkbox" name="ckb_unit[]" value="3 val" />
    <input type="checkbox" name="ckb_unit[]" value="4 val" />
  </div>


  <div id="group2">
      <p>Please select a box</p>
    <input type="checkbox" name="ckb_unit[]" value="zero" />
    <input type="checkbox" name="ckb_unit[]" value="A" />
    <input type="checkbox" name="ckb_unit[]" value="B" />
    <input type="checkbox" name="ckb_unit[]" value="C" />
    <input type="checkbox" name="ckb_unit[]" value="D" />
  </div>

  <div id="group3">
    <p>*Please select a box (Mandatory)</p>
    <input type="checkbox" name="ckb_unit[]" value="zero" />
    <input type="checkbox" name="ckb_unit[]" value="1 A" />
    <input type="checkbox" name="ckb_unit[]" value="2 B" />
    <input type="checkbox" name="ckb_unit[]" value="3 C" />
    <input type="checkbox" name="ckb_unit[]" value="4 D" />
  </div>
</form>

<!-- For debugging purposes -->
<br/>
<div id="count"></div>
<div id="selection1"></div>
<div id="selection3"></div>
函数countChecked(){
//第一组
var n=$(“#组1输入:选中”).length;
$(“#计数”).text(n+(n

您可以通过在用户点击submit时检查n是否为0,然后以某种方式吸引用户的注意力(例如,附加一条错误消息),将其设置为必填项。我指的是n:

var n = $("#group1 input:checked").length;
看看JSFIDLE,您似乎没有将txt声明为变量,所以这对我来说是可行的:

//Group 1
var txt = ""; // initialise txt with an empty string, so you can append to it later
var n = $("#group1 input:checked").length;
$("#count").text(n + (n <= 1 ? " is" : " are") + " checked!");
$("#group1 input:checked").each(function() {
    txt += ($(this).val() + " | ");
    $("#selection1").text(txt);
    alert($(this).val() + " | ");
});
//组1
var txt=”“;//使用空字符串初始化txt,以便以后可以附加到它
var n=$(“#组1输入:选中”).length;

$(“#count”).text(n+(n您可以通过在用户点击submit时检查n是否为0,然后以某种方式吸引用户的注意力(例如,附加一条错误消息)将其设置为必填项。我指的是n:

var n = $("#group1 input:checked").length;
看看JSFIDLE,您似乎没有将txt声明为变量,所以这对我来说是可行的:

//Group 1
var txt = ""; // initialise txt with an empty string, so you can append to it later
var n = $("#group1 input:checked").length;
$("#count").text(n + (n <= 1 ? " is" : " are") + " checked!");
$("#group1 input:checked").each(function() {
    txt += ($(this).val() + " | ");
    $("#selection1").text(txt);
    alert($(this).val() + " | ");
});
//组1
var txt=”“;//使用空字符串初始化txt,以便以后可以附加到它
var n=$(“#组1输入:选中”).length;

$(“#count”).text(n+)(n如何删除最后一个模式:“|”?.Ej.如果用户选择了2个chkbx,我希望字符串是“zero | 1val”而不是“zero | 1val”?将值存储在数组中,然后使用.join(“|”)方法将其转换为一个大字符串。这里有一个有用的链接:如何删除最后一个模式:“|”?.Ej.如果用户选择了2 chkbx,我希望字符串是“zero | 1 val”而不是“zero | 1 val”?将值存储在数组中,然后使用.join(“|”)命令方法将它们转换为一个大字符串。这里有一个有用的链接:@roobeedeedada谢谢你roobeedeedada!我仍在完善jquery代码,但这是我迄今为止所拥有的:@roobeedeedada谢谢你roobeedeedada!我仍在完善jquery代码,但这是我目前所拥有的: