【问题标题】:.Net Jquery Radio Button Toggle Text Area.Net Jquery 单选按钮切换文本区域
【发布时间】:2012-04-26 21:30:26
【问题描述】:

我有一个带有单选按钮组和文本区域的 ASP .Net 页面。

我想切换犯罪描述文本区域,这样如果他们选择“是”,他们就必须解释情况。否则,文本区域对其他人来说仍然是隐藏的。

两者都是在服务器上运行的,因此 Web 表单母版页会为两者创建一个生成的 ID。但是,我似乎无法获得单选按钮的值。

我在其他线程中尝试了几种解决方案,但都没有奏效。

以下是我尝试过的几种JQ方法:

//.Net throws an error and says that ClientId is not a property of the radio group.
$('#<%= Crime.ClientId %>').bind('change', function () {

   var checked = $(this).find('input:radio:checked');
   if (checked.length == 0) {
                alert("NO");
            }
   else {
                alert("YES");
            }

   var myRadio = $(this);

                           var checkedValue = myRadio.filter(':checked').val();

                            var show = myRadio.val() == "Yes";

                           var showOrHide = (myRadio.val() == 1) ? true : false;

                            alert(show + " " + showOrHide + " " + checkedValue);
                            $('#<%= CrimeDescription.ClientID %>').toggle(showOrHide);

        });

我还为 ASPX 控件应用了一个类,并尝试了它的变体:

$('.CrimeToggle').click(function () {
                        //maybe traverse down to find the selected???
                    });

.Net ASPX

<asp:RadioButtonList RepeatDirection="Horizontal" CssClass="CrimeToggle" ID="Crime" runat="server">
             <asp:ListItem Value="Yes">Yes</asp:ListItem>
             <asp:ListItem Value="No">No</asp:ListItem>
</asp:RadioButtonList>

<textarea runat="server" id="CrimeDescription"></textarea>

我需要选中选中的单选按钮并获取它的值。

我必须使用 RadioButtonList 控件而不是输入(因为后端也在对控件执行其他操作)。

这是 .Net 生成的输出 html:

<table id="ctl00_BodyHolder_Crime" class="CrimeToggle" border="0">
<tbody>
<tr>
<td>
<input id="ctl00_BodyHolder_Crime_0" type="radio" value="Yes" name="ctl00$BodyHolder$Crime">
<label for="ctl00_BodyHolder_Crime_0">Yes</label>
</td>
<td>
<input id="ctl00_BodyHolder_Crime_1" type="radio" value="No" name="ctl00$BodyHolder$Crime">
<label for="ctl00_BodyHolder_Crime_1">No</label>
</td>
</tr>
</tbody>
</table>

【问题讨论】:

  • 得用Firebug调试这种东西……

标签: jquery .net radiobuttonlist


【解决方案1】:

根据您在问题中给我们的文字,我相信这个建议会比直接回答您的问题更有帮助。

当使用 JQuery 查找内容时,它是在 HTML 中搜索。您发布了 .NET ASPX 内容,它不是 HTML,但确实产生了它。有时,ASP.NET 会做一些你意想不到的事情。

所以,与其用您的 JQuery 猜测什么可能有效,不如查看实际的 HTML 输出,并在 Web 浏览器中使用控制台(一些浏览器允许这样做)。在查看实际的 HTML 时,使用控制台计算出一个 JQuery 表达式,该表达式可以提取您需要的内容。

那就加油吧!

【讨论】:

  • 您好,通常您可以使用服务器标签来定位元素的 ID。在单选组的实例中,单选按钮没有 ID。我已经用 html 更新了我的 Q。那么,您能告诉我如何使用 .CrimeToggle 类从表中向下遍历以查找所选收音机的值。我试过这个: $('.CrimeToggle').children('input:radio:checked').val();
  • 这似乎突然起作用了:$('.CrimeToggle').find('input:radio:checked').val();
【解决方案2】:

如果有人遇到同样的问题,这就是我最终的结果。

$('#<%= Crime.ClientID %>').click(function () {

            var showHide = $('.CrimeToggle').find('input:radio:checked').val() == "Yes";

            $('#<%= CrimeDescription.ClientID %>').toggle(showHide);

});

由于某种原因,我原来的工作又开始了。 Visual Studio 有时可能会出错。奇怪。

【讨论】:

    猜你喜欢
    • 2016-10-30
    • 2020-05-20
    • 1970-01-01
    • 2014-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-19
    • 2017-12-01
    相关资源
    最近更新 更多