2011-11-08 10 views
0

私のページがラジオボタンの変更イベントを発生させない理由を理解しようとしています。ASP.NETラジオボタンjQueryの処理

これは私が持っているスクリプトです。ラジオボタンがチェックされたら、divを表示するはずです。

 $("input[id$='radio1']").change(function() { 
     if ($("input[id$=radio1]").is(':checked')) { 
      $('#div1').removeClass('hidden'); 
     } 
    }); 

このコードには何が問題なのですか?

答えて

5
$("input[id$='radio1']").change(function() { 
    if ($(this).is(":checked")) { 
     $("#div1").removeClass("hidden"); 
    } 
}); 
+0

ありがとう、やってよ! – Victor

1

セレクタに一致する要素を再度検索するのではなく、関数内でthisキーワードを使用する必要があります。

$("input[id$='radio1']").change(function() { 
    if ($(this).is(':checked')) { 
     $('#div1').removeClass('hidden'); 
    } 
}); 
+0

uh ...彼はidのための[属性の終わり](http://api.jquery.com/attribute-ends-with-selector/)セレクタを使用しています...したがって、彼は[id $ = radio1] –

+0

あなたは間違っています... hesセレクターはすべてで始まる人です! –

+0

愚かな私、私はそれを削除し、ちょうど2番目の部分に残った!それを指摘していただきありがとうございます – Connell

3
$("input[id$='radio1']").change(function() { 
    if ($(this).is(':checked')) { 
     $('#div1').removeClass('hidden'); 
    } 
}); 

あなたはあなたの関数でthisオブジェクトを使用する必要があります。

+0

ありがとう! – Victor

+0

@Victorあなたは大歓迎です:)(Royiは最初にそれを持っていたので、彼の答えは受け入れられるはずです)。 –

+0

@Interstellar_Coder申し訳ありません...キャッシュされたバージョンを表示していたため変更がロールバックされ、間違って編集されていると思われました。> –

0

ラジオがチェックされているかどうかをこの方法で確認してみてください。

if(document.getElementById('radio1').checked) { 
    $('#div1').removeClass('hidden'); 
} 
+1

コントロールをレンダリングするときに親要素名が追加されるためASP.NETラジオでは機能しません。 – Victor

+0

あなたはリジッドなので、ブロック内でこれを使用してください。 :) – JAiro