2012-02-22 7 views
8

hanno 2 RadioButtonLists:ASP.Net RadioButtonList: utilizzando jQuery per ottenere il ListItem selezionato

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

Se la risposta alla prima domanda è sì, voglio rilevare la risposta alla prima domanda e impostare la risposta alla seconda domanda a si usando una funzione jQuery. Grazie in anticipo.

<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

potete inserire il codice HTML per i pulsanti? – JaredPar

+0

Ho pubblicato il codice. – Susan

risposta

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

Quando ASP.Net è reso come HTML, l'ID è cambiato e non è più 'rdlMinor;' Questo ID non è disponibile quando lo script jQuery viene caricato in memoria, quindi non è accessibile in jQuery. – Susan

+0

È possibile utilizzare ClientIDMode = "Statico" sul proprio controllo per mantenere l'ID definito nel markup. – Andreas

4

provare questo codice:

<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> 

più su questi argomenti:

JQuery Accessing the Client Generated ID of ASP.NET Controls

How to Set Get RadioButtonList Selected Value using jQuery

+0

Quando ASP.Net è reso come HTML, l'ID è cambiato e non è più 'rdlMinor;' è creato al volo. L'ID non è disponibile quando lo script jQuery viene caricato in memoria, quindi non è accessibile in jQuery. – Susan

+0

Ecco perché stiamo usando '$ (" # <% = rdlMinor.ClientID%> ")' e non solo '$ (# rdlMinor") '. Questo primo costrutto posizionerà nel codice jQuery l'ID esatto che ASP. NET sta usando per quel controllo: è davvero dinamico, ecco perché dobbiamo usare '$ (" # <% = rdlMinor.ClientID%> ")'. A proposito, dovresti inserire il tuo codice jQuery dopo che la pagina ha finito di caricare nell'evento pronto jQuery aggiornerò il codice –

+0

Ho appena corretto un refuso nel mio precedente codice in cui avevo '<% = dlMinor.ClientID%>' invece di '<% = rdlMinor.ClientID%>'. Vedi se il codice corretto sopra funziona ora e torna indietro ... –

Problemi correlati