【问题标题】:Checking if the input is checked always returns true检查输入是否被检查总是返回 true
【发布时间】:2012-05-21 11:33:25
【问题描述】:

我正在尝试这样:

if($('input:checkbox:checked').length > 0 == false){

但这总是会返回true,不管是否检查

注意:DOM 中只有一个复选框。

【问题讨论】:

  • 似乎对我有用(Chrome 19)。 jsfiddle.net/WzvWr
  • if 语句中的逻辑让我头疼:(

标签: javascript jquery forms checkbox


【解决方案1】:

试试:

if(!$("input:checkbox").is(":checked")){
  //not checked
}

【讨论】:

    【解决方案2】:
     if(!$('input:checkbox').prop('checked')){ //do stuff
    

    注意:prop() 需要 jquery 版本 > 1.6

    【讨论】:

      【解决方案3】:
      if($('input[type="checkbox"]:checked').length ==0){
      

      【讨论】:

        【解决方案4】:

        试试这个

        if($("input:checkbox").is(":checked")){
              alert('checkbox is checked')
            }
            else
            {
              alert('checkbox is not checked')
            }
        

        如果您的表单中有多个复选框而不是像这样迭代每个复选框

        $('input:checkbox:checked').each(function () {
              var value = $(this).attr('value');
              alert(value);// it returns on or off, depends on checked or unchecked               
        });
        

        【讨论】:

          【解决方案5】:
              $.extend($.expr[':'], {
                  unchecked: function (obj) {
                      return ((obj.type == 'checkbox' || obj.type == 'radio') && !$(obj).is(':checked'));
                  }
              });
          
          
              if(($('input:unchecked').length > 0)=== false)
          

          【讨论】:

            猜你喜欢
            • 2019-11-17
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-02-10
            • 2017-06-29
            • 2018-09-29
            相关资源
            最近更新 更多