检查表单提交中是否检查了每组2个复选框中的1个?

时间:2014-04-02 10:58:40

标签: javascript jquery

我有8个复选框,在第一组中分成2组,我有一个复选框标记为checkbox1,一个复选框标记为checkbox2。我想要一个JavaScript代码,这样我就可以检查表单提交是否已经为每个组检查了其中2个复选框中的至少一个。

我不想要一个只检查你是否只检查过一个复选框的脚本,因为这意味着用户不必检查另一组复选框中的至少一个其他复选框。

有没有人知道我如何做到这一点的方式,我是否会走正确的路线?

$('#form_check').on('submit', function (e) {
  if ($("input[id=box1]:checked").length === 0) {
    if ($("input[id=box2]:checked").length === 1) {

    } else {
      if ($("input[id=box2]:checked").length === 0) {
        if ($("input[id=box1]:checked").length === 1) {    
          e.preventDefault();
          alert('no way you submit it without checking a box');
          return false;
        }
      }
    }
  }
});

1 个答案:

答案 0 :(得分:0)

这样做:

$("button").click(function(){
    var length = 0;  // initial length 

    $(".group").each(function(){ 
        // if box is checked, add 1, else 0
        length += ($(this).find("input:checked").length === 1);
    });

    // if there are as many box's checked as many groups, i.e. one checked box per group
    if(length === $(".group").length){
        alert("y");
    }else{
        alert("no");
    }
});

DEMO