使用jQuery检查checkbox checked属性是否为空

时间:2014-08-17 16:03:17

标签: javascript jquery twitter-bootstrap

如何查看复选框已检查属性?如果未选中其中任何一个,请在span中显示以下句子:“你应该选择其中一个”。我的验证不起作用。

<label>
    <input type="checkbox" name="chk[]" id="chk[]" />male
</label>
<label>
    <input type="checkbox" name="chk[]" id="chk[]" />female
</label>

<script>
    if ($('input[name="chk[]"]:checked').length < 0) {
        $("#textspan").html('you shoud select one of them');
    }
</script>

2 个答案:

答案 0 :(得分:0)

就您的具体问题而言,如果未选中任何复选框,则$('input[name="chk[]"]:checked').length为0,而非为否定值 - 因此您应将条件从if ($('input[name="chk[]"]:checked').length < 0)更改为if ($('input[name="chk[]"]:checked').length == 0)

Full example

除此之外,还有一些附注: 1.我使用单选按钮(因为它更适合您当前的男/女选择)。 2.您具有两次相同的ID(chk[]),这会导致您的HTML无效。 3. HTML 4.1标准中不允许使用ID中的[]字符,并且不符合约定。

答案 1 :(得分:0)

我冒昧地改变了代码,因为你的HTML有点奇怪。

工作示例:http://jsfiddle.net/a4jzvoou/

HTML:

<div>
    <input type="checkbox" class='gender' id="male">male</input>
    <input type="checkbox" class='gender' id="female">female</input>
</div>
<button class="validate">Validate</button>

JS:

$(function() {
  $('.validate').click(function(event) {     
     var checkedCount = ($('input[class="gender"]:checked').length))        
  })   
});