Jquery - 检查是否至少选中了一个复选框

Jak*_*ake 62 javascript jquery

我有以下HTML表单,它可以有很多复选框.单击提交按钮时,我希望用户获取javascript警报以检查至少一个复选框(如果没有选中).使用Jquery有一种简单的方法吗?

<form name = "frmTest" id="frmTest">
  <input type="checkbox" value="true" checked="true" name="chk[120]">
  <input type="checkbox" value="true" checked="true" name="chk[128]">
  <input type="checkbox" name="chk[130]">
  <input type="checkbox" name="chk[143]">
  <input type="submit" name="btnsubmit" value="Submit">
</form>
Run Code Online (Sandbox Code Playgroud)

Que*_*tin 95

if(jQuery('#frmTest input[type=checkbox]:checked').length) { … }
Run Code Online (Sandbox Code Playgroud)

  • @Jan - `jQuery('#frmTest input [type = checkbox]:checked')`返回一个jQuery对象,其中包含与选择器匹配的所有元素.它不返回布尔值.您可能会将它与`HTMLInputElement.checked`混淆. (14认同)

Mat*_*hen 34

$('#frmTest input:checked').length > 0
Run Code Online (Sandbox Code Playgroud)

  • 为什么收音机按钮会更好?如果OP想要*至少*一个选项,选择的单选按钮会将他限制为最多**. (2认同)

Jon*_*Jon 19

$("#frmTest").submit(function(){
    var checked = $("#frmText input:checked").length > 0;
    if (!checked){
        alert("Please check at least one checkbox");
        return false;
    }
});
Run Code Online (Sandbox Code Playgroud)


chi*_*hon 9

$("#show").click(function() {
    var count_checked = $("[name='chk[]']:checked").length; // count the checked rows
        if(count_checked == 0) 
        {
            alert("Please select any record to delete.");
            return false;
        }
        if(count_checked == 1) {
            alert("Record Selected:"+count_checked);

        } else {
            alert("Record Selected:"+count_checked);
          }
});
Run Code Online (Sandbox Code Playgroud)


nam*_*abs 5

$('#frmTest').submit(function(){
    if(!$('#frmTest input[type="checkbox"]').is(':checked')){
      alert("Please check at least one.");
      return false;
    }
});
Run Code Online (Sandbox Code Playgroud)

如果选中至少一个或多个复选框,则is(':checked')将返回true.


小智 5

$('#fm_submit').submit(function(e){
    e.preventDefault();
    var ck_box = $('input[type="checkbox"]:checked').length;
    
    // return in firefox or chrome console 
    // the number of checkbox checked
    console.log(ck_box); 

    if(ck_box > 0){
      alert(ck_box);
    } 
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form name = "frmTest[]" id="fm_submit">
  <input type="checkbox" value="true" checked="true" >
  <input type="checkbox" value="true" checked="true" >
  <input type="checkbox" >
  <input type="checkbox" >
  <input type="submit" id="fm_submit" name="fm_submit" value="Submit">
</form>
<div class="container"></div>
Run Code Online (Sandbox Code Playgroud)