.Net Jquery单选按钮切换文本区域

时间:2012-04-26 21:30:26

标签: jquery .net radiobuttonlist

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

我想切换犯罪描述textarea,如果他们选择“是”,他们必须解释情况。否则,textarea仍然对其他人隐藏。

两者都是runat服务器,因此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>

2 个答案:

答案 0 :(得分:0)

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

当使用JQuery查找内容时,它正在寻找HTML。您已发布不是HTML的.NET ASPX内容,但确实生成了它。有时,ASP.NET会做你不期望的事情。

所以,而不是猜测你的JQuery可能有用的东西,看看实际的HTML输出,并在网络浏览器中使用控制台(几个浏览器允许这样做)。在查看实际的HTML时,使用控制台计算出一个可以提供所需内容的JQuery表达式。

然后加油!

答案 1 :(得分:0)

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

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

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

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

});

出于某种原因,我最初开始重新开始工作。 Visual Studio有时可能会出错。奇怪。