jQuery循环每个单选按钮不起作用

时间:2013-10-01 06:12:19

标签: javascript jquery

非常简单,这个小东西会杀了我。

我尝试循环每个单选按钮。

$('#recover input:radio:checked').each(function() {
  alert("checked");
});

OR

 function Checkform() {
    var result = true;
    $('#recover input[type=radio]').each(function() {
        var checked = $(this).find('input:radio:checked');
        if (checked.length == 0) {
            result = false;
            alert ("check");
        }
    });
    return result;
}

OR

 $('#recover input[type=radio]').each(function(){
 if($(this).attr('checked')){
    alert ("check");
  }
});

HTML:

<div id="recover">
  <input type="radio" name="s">
  <input type="radio" name="s">
  <input type="radio" name="s">
</div>

也尝试了:

<div id="recover">
<form>
  <input type="radio" name="s">
  <input type="radio" name="s">
  <input type="radio" name="s">
</form>
</div>

<div id="recover">
<form>
  <input type="radio" name="s" value="1">
  <input type="radio" name="s" value="2">
  <input type="radio" name="s" value="2">
</form>
</div>

HTML的更多组合。

尝试更像jQuery / Javascript的其他5个例子, none 工作,我不知道为什么。

请帮忙,谢谢分配。

6 个答案:

答案 0 :(得分:4)

使用$(this).prop('checked')代替$(this).attr('checked')

jsFiddle Demo


Attributes vs. Properties

  

...

     

然而,关于检查的最重要的概念要记住   属性是它与已检查属性不对应。该   attribute实际上对应于defaultChecked属性和   应该只用于设置复选框的初始值。该   checked属性值不随状态而变化   复选框,而checked属性。 因此,   跨浏览器兼容的方式来确定是否选中了复选框   使用该属性

if ( elem.checked )
if ( $( elem ).prop( "checked" ) )
if ( $( elem ).is( ":checked" ) )
     

其他动态属性也是如此,例如已选择和   的

答案 1 :(得分:1)

试试这个演示 http://jsfiddle.net/devmgs/X6QhN/

function doCheck(){
   $('#recover input[type="radio"]:checked').each(function() {
  alert("checked");
});
}

答案 2 :(得分:0)

使用 prop 因为它给出了真或假

attr

赋予属性名称,例如选中或不支持,因此无法在条件

中使用
   $('#recovery input[type=radio]').each(function(){
     if($(this).prop('checked')){
        alert ("check");
      }
    });

参考prop

答案 3 :(得分:0)

您可以直接从dom参考

访问checked属性
$('#recover input[type=radio]').each(function () {
    if (this.checked) { // or $(this).is(':checked')
        alert("check");
    }
});

如果您只想处理选中的项目,请使用:checked选择器

$('#recover input[type=radio]:checked').each(function () {
    alert("check");
});

演示:Fiddle

答案 4 :(得分:0)

$(document).ready(function(){
 $('#recover > radio').each(function(){
     if($(this).prop('checked')){
        alert ("checked");
      }
    });
    });

答案 5 :(得分:0)

试试这个 `

               jQuery(function ()
               {
        if (jQuery('#recover input[name="s"]').is(':checked'))
        {
               alert("Checked");            }
        else
        {

             alert("Please select an Record");
          }
    });`