2012-02-22 14 views
8

tienen 2 RadioButtonLists:ASP.Net RadioButtonList: usando jQuery para obtener el ListItem seleccionado

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

Si la respuesta a la primera pregunta es sí, quiero para detectar la respuesta a la primera pregunta y ajustar la respuesta a la 2da pregunta a sí usando una función jQuery. Gracias por adelantado.

<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

Se puede publicar el código HTML para los botones? – JaredPar

+0

He publicado el código. – Susan

Respuesta

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

Cuando ASP.Net se representa como HTML, la identificación se cambia y ya no es 'rdlMinor;' se crea sobre la marcha. Ese ID no está disponible cuando el script jQuery se carga en la memoria, por lo que no se puede acceder a él en jQuery. – Susan

+0

Puede usar ClientIDMode = "Static" en su control para mantener el ID definido en su marcado. – Andreas

4

probar este código:

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

más sobre estos temas:

JQuery Accessing the Client Generated ID of ASP.NET Controls

How to Set Get RadioButtonList Selected Value using jQuery

+0

Cuando ASP.Net se representa como HTML, la identificación se cambia y ya no es 'rdlMinor;' es creado sobre la marcha. Ese ID no está disponible cuando el script jQuery se carga en la memoria, por lo que no se puede acceder a él en jQuery. – Susan

+0

Es por eso que estamos usando '$ (" # <% = rdlMinor.ClientID%> ")' y no solo '$ (# rdlMinor") '. Este primer constructo colocará en el código jQuery el ID exacto de esa ASP. NET está usando ese control. Es de hecho dinámico. Por eso tenemos que usar '$ (" # <% = rdlMinor.ClientID%> ")' Por cierto, debes poner tu código jQuery después de que la página haya terminado de cargarse en el evento jQuery listo. Actualizaré el código. –

+0

Acabo de corregir un error tipográfico en mi código anterior donde tenía '<% = dlMinor.ClientID%>' en lugar de '<% = rdlMinor.ClientID%>'. Consulte si el código corregido anterior funciona ahora y vuelve ... –

Cuestiones relacionadas