我有一个带有单选按钮组和文本区域的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>
答案 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有时可能会出错。奇怪。