Pergunta

Eu preciso fazer algo assim:

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

e ser capaz de verificar o valor do valor verificado do botão de rádio no jQuery, mas minhas tentativas como essas não retornam verdadeiras/falsas.

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

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

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

Uma ajudinha?

Foi útil?

Solução

Esta é provavelmente a maneira mais fácil de fazer isso. o *= pesquisa todo o atributo de identificação para rbdate que cuida de todo o ASP.NET ID Mangling.

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

Outras dicas

Enquanto Resposta de Chaospandion vai funcionar, seria mais rápido embrulhar seu RadioButtonList em uma div como esta:

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

Então seu código jQuery pode ser tão simples:

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

O InamingContainer adiciona um monte de coisas ao início do ID do HTML real.

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

Usando o bit [id $ = rbdate] no seletor diz ao jQuery que você deseja a entrada com um id que termina no rbdate

Agora, se você tivesse um que queria obter o valor selecionado de toda a lista, você pode fazer algo como

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

que, um dos itens selecionados retornaria o valor do selecionado, ou, nessa lista de botões de rádio.

Aqui está minha solução jQuery que usa o ASP.NET ID:

var rbSelected =  $("#<%= rbDate.ClientID %>").is(":checked"); 
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top