如何检查jQuery中的复选框状态?

时间:2014-10-29 09:46:56

标签: javascript jquery

我将我的jQuery库升级到1.9.1并拥有以下代码:

if (
    !($("#Days_Sat").attr("checked"))
    && !($("#Days_Sun").attr("checked"))
    && !($("#Days_Mon").attr("checked"))
    && !($("#Days_Tu").attr("checked"))
    && !($("#Days_We").attr("checked"))
    && !($("#Days_Tr").attr("checked"))
    && !($("#Days_Fr").attr("checked"))) {
         alert("pleas select day");
            }

但即使我选择日期复选框显示警告!

9 个答案:

答案 0 :(得分:2)

您可以使用is(':checked')了解复选框状态,如果选中复选框,则会返回true false。见下面的代码

if (!($("#Days_Sat").is(':checked'))
    && !($("#Days_Sun").is(':checked'))
    && !($("#Days_Mon").is(':checked'))
    && !($("#Days_Tu").is(':checked'))
    && !($("#Days_We").is(':checked'))
    && !($("#Days_Tr").is(':checked'))
    && !($("#Days_Fr").is(':checked'))) 
   {
      alert("pleas select day");
   }

如果您的所有相关复选框id都以Days开头,那么您可以使用 jQuery start with selector id开始获取所有复选框'天_'并获取对象的长度,以查找是否未选中它们。见下面的代码

var checked = $('input[id^="Days_"]:checked').length;
if(checked==0)
  alert("pleas select day");

答案 1 :(得分:0)

尝试

$('##Days_Sun').is(':checked');

答案 2 :(得分:0)

您可以将.is()方法与:checked选择器一起使用。像这样:

$("#Days_Fr").is(":checked")

答案 3 :(得分:0)

我会检查是否有任何以“Days_”开头的ID被检查。如果不是(!)那么if子句将是无用的。

if (!$("[id^='Days_']:checked").length) alert("pleas select day");

$('button').click(function(){
    if (!$("[id^='Days_']:checked").length) alert('please choose a day...');
    else alert('cool...');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<input type="checkbox" id="Days_Sat" />
<input type="checkbox" id="Days_Sun" />
<input type="checkbox" id="Days_Mon" />
<input type="checkbox" id="Days_Tu" />
<input type="checkbox" id="Days_We" />
<input type="checkbox" id="Days_Tr" />
<input type="checkbox" id="Days_Fr" />
<button type="button">Test</button>

答案 4 :(得分:0)

为了让您的代码更易于阅读,我会选择:

if ( $('#Days_Sat, #Days_Sun, #Days_Mon, #Days_Tu, #Days_We, #Days_Tr, #Days_Fr').filter(':checked').length != 1 )
{

}

除此之外:像其他人已经回答:.is(':checked')是你的解决方案。

答案 5 :(得分:0)

像这样检查

if(!$("[id^='Days_']").is(':checked')){

         alert("pleas select day");
  }

答案 6 :(得分:0)

$('#your_id').is(':checked')会选中是否选中复选框。 如果选中则返回true;如果未选中则返回false

  if($('#Days_Sat').is(':checked'))
    {
    do something...
    }

和你完整的代码

if(!$('#Days_Sat').is(':checked')&&!$('#Days_Sun').is(':checked')&&!$('#Days_Mo').is(':checked')&&!$('#Days_Tu').is(':checked')&&!$('#Days_Th').is(':checked')&&!$('#Days_Fr').is(':checked'))
{
alert("pleas select day");
}

答案 7 :(得分:0)

使用jQuery is方法代替attr

jQuery API link

Demo

答案 8 :(得分:0)

在这里查看jsfiddle JsFiddle

$(function(){

    $('#check').click(function(){
        if($("[id^='days_']:checked").length !=7 ){
        alert("Please select a day");}
        else{alert("works fine");}
    });

  });

如果未点击任何复选框,则会弹出警报。

如果您想要选择至少一个,您可以选择

if($("[id^='days_']:checked").length !=0 )