2012-02-22 4 views
8

есть 2 RadioButtonLists:ASP.Net RadioButtonList: с помощью JQuery, чтобы получить ListItem выбранный

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

Если ответ на 1-й вопрос да, я хочу, чтобы обнаружить ответ на первый вопрос и установить ответ на второй вопрос до да, используя функцию jQuery. Заранее спасибо.

<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

Вы можете разместить HTML для кнопок? – JaredPar

+0

Я разместил код. – Susan

ответ

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

Когда ASP.Net отображается как HTML, идентификатор изменяется и больше не «rdlMinor;» он создается «на лету». Этот идентификатор недоступен, когда сценарий jQuery загружен в память, поэтому он недоступен в jQuery. – Susan

+0

Вы можете использовать ClientIDMode = «Static» на вашем элементе управления, чтобы сохранить идентификатор, определенный в вашей разметке. – Andreas

4

Попробуйте этот код:

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

Дополнительная информация по этим вопросам:

JQuery Accessing the Client Generated ID of ASP.NET Controls

How to Set Get RadioButtonList Selected Value using jQuery

+0

Когда ASP.Net отображается как HTML, идентификатор изменяется и больше не «rdlMinor;» он создается на лету. Этот идентификатор недоступен, когда сценарий jQuery загружается в память, поэтому он недоступен в jQuery. – Susan

+0

Вот почему мы используем '$ (" # <% = rdlMinor.ClientID%> ")', а не только '$ (# rdlMinor") '. Эта первая конструкция поместит в код jQuery точный идентификатор ASP. NET используется для этого элемента управления. Это действительно динамично, поэтому нам нужно использовать '$ (" # <% = rdlMinor.ClientID%> ")'. Кстати, вы должны поместить свой код jQuery после завершения загрузки страницы в событии jQuery. Я обновляю код. –

+0

Я только что исправил опечатку в своем предыдущем коде, где у меня был '<% = dlMinor.ClientID%>' вместо '<% = rdlMinor.ClientID%>'. если выше скорректированный код работает сейчас и возвращается ... –