2014-02-15 48 views
0
<asp:RadioButtonList ID="ckbLstPartner" runat="server" 
            RepeatDirection="Horizontal" CssClass="cssRdlstMoheSacm"> 
           <asp:ListItem Text="Yes" Value="1"></asp:ListItem> 
           <asp:ListItem Text="No" Value="0"></asp:ListItem> 
           </asp:RadioButtonList> 

对每个人来说都是美好的一天,我不知道为什么在比较val()与'1'以显示tr时没有采取行动咨询。如何比较单选按钮列表中选定值的值

$('#<%=ckbLstPartner.ClientID %>').change(function() { 
    if ($('#<%=ckbLstPartner.ClientID %>').find('option:checked').val() == '1') { 

      $('#trSetPartnerNamesAvailability').show(); 
      $('#trSetPartnerInfoAvailability').show(); 
     } 
     else { 
      $('#trSetPartnerNamesAvailability').hide(); 
      $('#trSetPartnerInfoAvailability').hide(); 
      $('#<%= txtPartnersName.ClientID %>').val(''); 
      $('#<%= txtReqScoreCourseAccept.ClientID %>').val(''); 
      $('#<%= txtCourseAcceptNote.ClientID %>').val(''); 
+0

我不知道哪里是错误的? ($(document#).ready(function(){... ????????( –

+0

)你把这个:$('#<%= ckbLstPartner.ClientID%>')。 –

+0

检查此链接 http://www.dotnetprogram.com/articles/call-javascript-function-for-radiobuttonlist-onchange-event-in-jquery –

回答

0

更改IF条件是这样的:

$(document).ready(function() { 
     $('#<%=ckbLstPartner.ClientID %>').change(function() { 
      if ($("input[name='<%=ckbLstPartner.ClientID %>'][value='1']").prop("checked")) { 

       $('#<%=trSetPartnerNamesAvailability.ClientID%>').show(); 
       $('#<%=trSetPartnerInfoAvailability.ClientID%>').show(); 
      } 
      else { 
       $('#<%=trSetPartnerNamesAvailability.ClientID%>').hide(); 
       $('#<%=trSetPartnerInfoAvailability.ClientID%>').hide(); 
       $('#<%= txtPartnersName.ClientID %>').val(''); 
       $('#<%= txtReqScoreCourseAccept.ClientID %>').val(''); 
       $('#<%= txtCourseAcceptNote.ClientID %>').val(''); 
      } 
     }); 
    }); 

注:

1)在asp.net如果你给ID,名称是id.So提防自动相同“名称”属性。基于名字我写逻辑。

2)关于jquery的更多信息。参考http://try.jquery.com/它们以简单的方式给出jquery,并且给出了ready函数的重要性。

3)更多关于单选按钮列表改变事件logic.Refer How to check radio button is checked using JQuery?

更新应答(如果有人使用母版页上面的逻辑): 当我们用主Page.We有两个内容占位符一个用于头部sectoin。另一个用于身体部分。因此,我将我的JavaScript文件放置在内容占位符1中。请参阅下面的代码。

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"> 
<script type="text/javascript"> 

      $(document).ready(function() { 
      $('#<%=ckbLstPartner.ClientID %>').change(function() { 
       if ($("input[name='ctl00$ContentPlaceHolder1$ckbLstPartner'][value='1']").prop("checked")) { 

        $('#<%=trSetPartnerNamesAvailability.ClientID%>').show(); 
        $('#<%=trSetPartnerInfoAvailability.ClientID%>').show(); 
       } 
       else { 
        $('#<%=trSetPartnerNamesAvailability.ClientID%>').hide(); 
        $('#<%=trSetPartnerInfoAvailability.ClientID%>').hide(); 
        $('#<%= txtPartnersName.ClientID %>').val(''); 
        $('#<%= txtReqScoreCourseAccept.ClientID %>').val(''); 
        $('#<%= txtCourseAcceptNote.ClientID %>').val(''); 
       } 
      }); 
     }); 
    </script> 
    <style type="text/css"> 
     .cssRdlstMoheSacm 
     {} 
    </style> 
</asp:Content> 

上述两个代码与99%的小修改相同,即:

网络表单不使用母版页:

if ($("input[name='ckbLstPartner'][value='1']").prop("checked")) {} 

的WebForm使用母版页:

if ($("input[name='ctl00$ContentPlaceHolder1$ckbLstPartner'][value='1']").prop("checked")) {} 
+0

不工作,仍然给我未定义。 –

+0

因为这个,我变得疯了,为什么它给了未定义的值? –

+0

你有答案吗? – Ajay