2009-10-08 19 views
8

jQueryでasp:ラジオボタンのチェック値をどうやって取得しますか?

私はこのような何かをする必要があります:

<asp:RadioButton ID="rbDate" runat="server" Text="Date" GroupName="grpPrimary" /> 

とjQueryのラジオボタンのチェック値の値をチェックすることができるが、これらのような私の試みはtrue/falseを返しません。

if ($('[name=rbDate]').attr("Checked")) 

if ($('[name=rbDate]').attr("Checked").val()) 

if ($('[name=rbDate]:checked').val()) 

少し助けますか?

答えて

17

これはおそらく最も簡単な方法です。 * =は、全体のid属性をrbDateに検索します。この属性は、ASP.NET IDのマングリング全体を処理します。

$('input[id*=rbDate]').is(":checked"); 
+0

私はそれを得ることはありません。 IDが特定の場合、* contains *属性フィルタを使用する理由は何ですか?何か不足していますか? – karim79

+0

+1私から、ところで。この回答は完全に有効ですが、必要がない場合は、IDの一部に一致する必要はありません。 –

+0

これはC#/ .NETのものですか? – karim79

5

ChaosPandion's answerが、このようなdivの中にあなたのRadioButtonListをラップするより速くなります動作しますが:

<div id="dateWrapper"> 
    <asp:RadioButton 
     ID="rbDate" 
     runat="server" 
     Text="Date" 
     GroupName="grpPrimary" /> 
</div> 

次に、あなたのjQueryのコードは、この単純なことができます:

var selected = $("#dateWrapper input:radio:checked"); 
+0

これは良い解決策ですが、ほとんどの場合、スピードの違いに気付かないことさえあります。 – ChaosPandion

+0

+1クリーンなソリューション、意図は明確です。 –

+0

jQueryは、私がやっていることに対して大きなトレードオフではありません。しかし、アイデアをありがとう! –

2

INamingContainerが追加されます実際のhtmlのIDの先頭にはたくさんのものがあります。あなたが選択した値を取得したいことがあった場合、セレクタの[ID $ = rbDate]ビットを使用して

$('input[id$=rbDate]').attr('checked') 

は今rbDate

で終わるidを持つあなたが入力をしたいというのjQueryを伝えますリスト全体のあなたはそのラジオボタンリストで、選択、またはの値を返します選択した項目の一つだった、

$('input[name$=rbDate]:checked').val() 

ような何かを行う可能性があります。ここで

0

はasp.netのIDを使用して、私のjQueryのソリューションです:

var rbSelected = $("#<%= rbDate.ClientID %>").is(":checked"); 
関連する問題