2012-02-22 13 views
8

mają 2 RadioButtonLists:ASP.Net RadioButtonList: jQuery uzyskać listitem wybrany

Are you a minor?: oYes oNo 
Do you wish a joint account?: oYes oNo 

Jeśli odpowiedź na 1 pytanie jest twierdząca, chcę wykryć odpowiedź na pierwsze pytanie i ustawić odpowiedź na drugie pytanie na tak, używając funkcji jQuery. Z góry dziękuję.

<asp:Label ID="lblMinfor" CssClass="boldIt" runat="server" Text="Is this account for a minor" Style="float: left; width: 200px;"></asp:Label><br /> 
<asp:RadioButtonList ID="rdlMinor" runat="server" RepeatDirection="Horizontal" Width="130px" Style="float: left;" BorderStyle="None" RepeatLayout="Flow"()> 
    <asp:ListItem>Yes</asp:ListItem> 
    <asp:ListItem Selected="True">No</asp:ListItem> 
</asp:RadioButtonList> 
<asp:Label ID="lblJoint" CssClass="boldIt" runat="server" Text="Is this for a joint account?" Style="float: left; width: 200px;"></asp:Label><br /> 
<asp:RadioButtonList ID="rdlJoint" runat="server" RepeatDirection="Horizontal" Width="130px" Style="float: left;" BorderStyle="None" RepeatLayout="Flow"> 
    <asp:ListItem>Yes</asp:ListItem> 
    <asp:ListItem Selected="True">No</asp:ListItem> 
</asp:RadioButtonList> 
+2

można zakładać HTML dla przycisków? – JaredPar

+0

Wysłałem kod. – Susan

Odpowiedz

11
$('#<%=rdlMinor.ClientID %>').change(function() { 
    if($('#<%=rdlMinor.ClientID %> input:checked').val() == 'Yes') 
    { 
     $('#<%=rdlJoint.ClientID %>').find("input[value='Yes']").attr("checked", "checked"); 
    } 
}); 
+0

Gdy ASP.Net jest renderowany jako HTML, identyfikator zostanie zmieniony i nie będzie już "rdlMinor;" jest on tworzony "w locie" Ten identyfikator nie jest dostępny, gdy skrypt jQuery jest załadowany do pamięci, więc nie jest dostępny w jQuery. – Susan

+0

Możesz użyć ClientIDMode = "Static" na swoim sterowaniu, aby zachować ID zdefiniowane w twoim znaczniku. – Andreas

4

Spróbuj kod:

<script type="text/javascript"> 

$(document).ready(function() { 

    $("#<%=rdlMinor.ClientID%>").change(function() 
    { 
     var rbvalue = $("input[@name=<%=rdlMinor.ClientID%>]:radio:checked").val(); 

     if(rbvalue == "Yes") 
     { 
      $('#<%=rdlJoint.ClientID %>').find("input[value='Yes']").attr("checked", "checked"); 
     } 
    }); 

}); 

</script> 

Więcej na te tematy:

JQuery Accessing the Client Generated ID of ASP.NET Controls

How to Set Get RadioButtonList Selected Value using jQuery

+0

Gdy ASP.Net jest renderowany jako HTML, identyfikator zostanie zmieniony i nie będzie już "rdlMinor;" jest tworzony w locie. Ten identyfikator nie jest dostępny, gdy skrypt jQuery jest załadowany do pamięci, więc nie jest dostępny w jQuery. – Susan

+0

Dlatego używamy '$ (" # <% = rdlMinor.ClientID%> ")', a nie tylko '$ (# rdlMinor") '. Ta pierwsza konstrukcja umieści w kodzie jQuery dokładny identyfikator ASP. NET używa tej kontrolki, która jest rzeczywiście dynamiczna, dlatego musimy użyć '$ (" # <% = rdlMinor.ClientID%> ")' .Nawiasem mówiąc, powinieneś umieścić swój kod jQuery po zakończeniu ładowania strony w wydaniu jQuery ready. Zaktualizuję kod: –

+0

Właśnie poprawiłem literówkę w moim poprzednim kodzie, gdzie miałem '<% = dlMinor.ClientID%>' zamiast '<% ​​= rdlMinor.ClientID%>." Zobacz jeśli powyższy skorygowany kod działa teraz i wróci ... –

Powiązane problemy