0

我有一个带有单选按钮组和文本区域的 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>
4

2 回答 2

0

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

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

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

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

});

不知为何,我原本的工作又开始了。Visual Studio 有时可能会出错。奇怪的。

于 2012-04-27T13:34:02.287 回答
0

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

使用 JQuery 查找内容时,它是通过 HTML 进行搜索。您发布了不是 HTML 的 .NET ASPX 内容,但确实生成了它。有时,ASP.NET 会做您意想不到的事情。

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

然后加油!

于 2012-04-26T21:35:52.893 回答