【问题标题】:Finding out whether checkboxes are checked or not查明复选框是否被选中
【发布时间】:2012-06-08 08:44:14
【问题描述】:

我想用 jQuery 验证表单中的单选按钮,但它不起作用。即使我选中一个单选按钮,下面的代码(变量“checked”)也会返回 false。

我做错了什么?

        $('.radio').each(function(){
            var checked = $(this).is(':checked');
            if($(this).is(':checked') === false){
                e.preventDefault();
            }
        });

【问题讨论】:

  • ummm... 为什么 $(this).is(':checked') === false) 中有 3 个等号?它们应该是 2 个等号,例如 $(this).is(':checked') == false)?
  • 您能否在此处添加您的 HTML 代码。根据您的代码,它建议每个单选按钮都有一个名为 radio 的类。

标签: jquery forms input radio-button


【解决方案1】:
        $('.radio').each(function(e){
            var checked = this.checked;  // using this.checked is better
            if(!checked){  // not checked
                e.preventDefault();
            }
        });

或者如果你想:is(':checked')那么

        $('.radio').each(function(e){
            var checked = $(this).is(':checked');
            if(!checked){  // not checked
                e.preventDefault();
            }
        });

【讨论】:

  • 谢谢!然而,这里似乎有些不对劲。即使我检查了所有单选按钮“已检查”设置为假。 ://
  • @holyredbeard 你是否将e 参数传递给.each() 回调
【解决方案2】:

使用

 $('.radio').click(function(){               
                if($(this).is(':checked') == false){
                    e.preventDefault();
                }
    });

使用$(this).is(:checked)或$(this).attr('checked')获取复选框的状态

【讨论】:

    【解决方案3】:

    试试这个

      $('.radio').each(function(){
                var checked = $(this).attr("checked") == "checked";
                if(checked){
                    e.preventDefault();
                }
            });
    

    【讨论】:

      猜你喜欢
      • 2021-07-16
      • 1970-01-01
      • 2015-12-28
      • 2020-03-01
      • 2018-12-17
      • 2014-01-11
      • 2015-06-25
      相关资源
      最近更新 更多