2011-06-26 16 views
0

ラジオボタンのスタイリングにjqueryを使用していますが、複数のグループがある場合は機能しません。複数のグループのjqueryラジオボタン

私はコードを持っている:

<script type="text/javascript"> 
    $(document).ready(function(){ 

     $(".RadioClass").change(function(){ 
      if($(this).is(":checked")){ 
       $(".RadioSelected:not(:checked)").removeClass("RadioSelected"); 
       $(this).next("label").addClass("RadioSelected"); 
      } 
     }); 
    }); 
</script> 

とHTMLで:それが必要として

<input id="Radio1" type="radio" class="RadioClass" name="group1" > 
<label id="Label1" for="Radio1" class="RadioLabelClass">Radio 1</label> 
<input id="Radio2" type="radio" class="RadioClass" name="group2"/> 
<label id="Label2" for="Radio2" class="RadioLabelClass">Radio 2</label> 
<input id="Radio3" type="radio" class="RadioClass" name="group1"/> 
<label id="Label3" for="Radio3" class="RadioLabelClass">Radio 3</label> 

まあ、例えばgroup2を有する、無線画像はそれに応じて、変化しませんjqueryに さまざまなグループ名でどのように動作させることができますか?私もそれは名前だけで要素を選択するために、おそらくより速いです実現:

+0

を置き換えるために、非常に信頼性の高い作品

$(".RadioClass").change(function(){ ... 

よりよいそれはクラスRadioClassを持つすべてのラジオボタンからRadioSelectedを削除し、あなたはそれからそれを削除したいです現在のグループの選択されたラジオボタン? – Ben

+0

正確には、現在のグループからのみ削除する方がよいでしょう!:) – dana

答えて

0

は編集

$(".RadioClass").change(function(){ 
if($(this).is(":checked")) 
{ 
    var groupName = $(this).attr("name"); 
    $(".RadioClass").each(function(idx) 
    { 
     if($(this).attr("name") == groupName) 
     { 
      $(this).next("label").removeClass("RadioSelected"); 
     } 
    }); 


    $(this).next("label").addClass("RadioSelected"); 
} 
}); 

、これを試してみてください。

$(".RadioClass").change(function(){ 
if($(this).is(":checked")) 
{ 
    var groupName = $(this).attr("name"); 
    $("[name='"+groupName+"']").next("label").removeClass("RadioSelected"); 

    $(this).next("label").addClass("RadioSelected"); 
} 
}); 
+0

ありがとうございます – dana

2

ない

$(".RadioClass").click(function(){ ... 
関連する問題