【问题标题】:How to compare the value of selected value in radiobuttonlist如何比较单选按钮列表中选定值的值
【发布时间】:2014-02-17 21:58:11
【问题描述】:
<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('');

【问题讨论】:

  • 不知道哪里错了?
  • 你放这个了吗:$('#').change(function ().... in $(document).ready(function() { . .. ????
  • 用这个链接检查dotnetprogram.com/articles/…
  • 不,我没有使用 .ready()
  • 两个单选按钮的 val() 在被 alert() 显示后都是 (((Undefined)))。 ??为什么?

标签: c# jquery asp.net


【解决方案1】:

像这样改变你的 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,Name 会自动与 id 相同。所以要注意“NAME”属性。基于名称我编写逻辑。

2)更多关于jquery .Refer http://try.jquery.com/他们以简单的方式给出jquery,同时也给出了ready函数的重要性。

3)更多关于单选按钮列表更改事件逻辑。参考How to check radio button is checked using JQuery?

更新的答案(如果有人将母版页用于上述逻辑): 当我们使用母版页时。我们有两个内容占位符。一个用于头部部分。另一个用于正文部分。所以我将我的 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")) {}

【讨论】:

  • 我因此而变得疯狂,为什么它赋予了未定义的价值??
  • 问题出在这里??当我检查页面来源时 >> id="ctl00_BodyContentPlaceholder_ckbPartner 和其他属性带有前缀: ct100_BodyContentPlaceholder ?
  • 我在这里。我在你的代码中看不到任何像 ctl00_BodyContentPlaceholder_ckbPartner 这样的 id 吗?你会发布整个 aspx 页面吗。我可以检查一下。
  • 没有我的朋友,一旦我在本地主机或服务器上运行应用程序,就会显示前缀。当我从浏览器检查页面的来源时,将显示完整的名称和 ID。我认为我们应该更改 ClientIDMode 属性或从页面源中获取完整名称 >> 确认哪个逻辑更好。并感谢您的跟进。
  • alert($("input:radio[name='ctl00$BodyContentPlaceholder$ckbLstPartner']:checked").val());
猜你喜欢
  • 2012-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-08
  • 1970-01-01
  • 1970-01-01
  • 2021-04-14
  • 1970-01-01
相关资源
最近更新 更多