web-dev-qa-db-ja.com

JQueryで最初のラジオボタンを確認する

各グループの最初のラジオボタンを確認したいと思います。ただし、無効になっているラジオボタンがあるため、スクリプトはそれらを無視して、無効になっていない次のボタンに移動する必要があります。

私はこのようなことを書きましたが、うまくいきません:

$(document).ready(function(){
 if($( "input ['radio'])。is( ':disabled'))
 {
 $( this).attr( 'checked'、false); 
} 
 else 
 {
 $(this).attr( 'checked'、true); 
} 
});

どうもありがとう

29
Matthew

ボタンが名前属性でグループ化されている場合は、次を試してください。

$("input:radio[name=groupName][disabled=false]:first").attr('checked', true);

それらが親コンテナによってグループ化されている場合:

$("#parentId input:radio[disabled=false]:first").attr('checked', true);
60
sje397
$("input:radio[name=groupX]:not(:disabled):first")

これにより、グループから最初の無効化されていないラジオボタンが表示されます...

17
Šime Vidas

以下はあなたが望むことをします:

$(document).ready(
  function(){
    $('input:radio:first-child').attr('checked',true);
  }
  );

デモ: JS Bin

8
David Thomas
<input type="radio" name="r1"><br>
<input type="radio" name="r1"><br>
<hr>
<input type="radio" name="r2"><br>
<input type="radio" name="r2"><br>
<input type="radio" name="r2"><br>

<script>
$(function(){
    //removed duplicates form the following array
    $(jQuery.unique(
        //create an array with the names of the groups
        $('INPUT:radio')
            .map(function(i,e){
                return $(e).attr('name') }
            ).get()
    ))
    //interate the array (array with unique names of groups)
    .each(function(i,e){
        //make the first radio-button of each group checked
        $('INPUT:radio[name="'+e+'"]:visible:first')
            .attr('checked','checked');
    });
});
</script>

jsfiddle = http://jsfiddle.net/v4auT/

3
Floyd

最初の答えをテストしましたが、解決しません。次の文を使用する必要がありました。

jQuery("input:radio[name=groupName]:visible")[0].checked=true;

これは、name = groupNameの最初の表示ラジオボタンをチェックします

2
Andres

これを試して :

 $("input:radio:not(:disabled)").attr("checked", true);

グループ内の最初のラジオボタンのみをチェックするには、次のことができます。

 $("parentelement input:radio:not(:disabled):first-child").attr("checked", true);
1
rahul