使用jQuery隐藏/显示表中的面板
我有一个ASP.NET web表单,带有表。在桌子里面,我有一个radiobuttonlist控件,下面是一个面板。面板内有几个带有其他web控件的标记 我要做的是根据radiobuttonlist中的选择显示或隐藏面板。在我的jQuery中,我有以下内容:使用jQuery隐藏/显示表中的面板,jquery,asp.net,Jquery,Asp.net,我有一个ASP.NET web表单,带有表。在桌子里面,我有一个radiobuttonlist控件,下面是一个面板。面板内有几个带有其他web控件的标记 我要做的是根据radiobuttonlist中的选择显示或隐藏面板。在我的jQuery中,我有以下内容: $(文档).ready(函数(){ $('#')。查找('input:radio')。单击(function(){ var selVal=$('#').find('input:checked').val(); 如果(selVal==“1”)
$(文档).ready(函数(){
$('#')。查找('input:radio')。单击(function(){
var selVal=$('#').find('input:checked').val();
如果(selVal==“1”)$(“#mydiv”).show(“fast”);
else$(“mydiv”).hide(“fast”);
})
});
如果我替换$(#mydiv”).show(“fast”)代码>带有警报
将显示警报
,因此我知道到目前为止一切正常
请记住,我的asp.net面板位于HTML表中
如果单选按钮值为“1”,我只想显示面板的内容,否则就隐藏它。我放弃了这个。在任何论坛上,都没有人拥有能与.NET面板或占位符一起工作的代码。所以我选择了一条更简单的路线。我移除了面板,而是在表行中嵌入了一张表。我给了表一个ID,然后用jQuery很容易显示/隐藏它。显然.NET服务器控件不能很好地使用jQuery。伙计们,我也在努力解决这个问题(使用jQuery隐藏/显示面板,但在我的例子中是RadioButtonList,不在表中),搜索了许多帖子,但没有找到答案,但我能够做到这一点,我就是这样做的
我的代码如下:
<div>
<p class="space">3.2. ACCOMMODATION (*)</p>
<asp:RadioButtonList ID="accomodation" runat="server" RepeatDirection="Horizontal" RepeatLayout="Flow" Width="500px">
<asp:ListItem Text="Not Required" Value="Not Required"></asp:ListItem>
<asp:ListItem Text="Required" Value="Required"></asp:ListItem>
</asp:RadioButtonList>
<asp:Panel ID="PanelAccommodation" runat="server">
<p>
Number of nights (*):
<asp:RequiredFieldValidator ID="RequiredFieldValidator12" runat="server" ControlToValidate="numberOfNights" ForeColor="red" ErrorMessage="<- Required"></asp:RequiredFieldValidator>
</p>
<asp:TextBox ID="numberOfNights" runat="server" Width="50px"></asp:TextBox>
<ajaxToolkit:FilteredTextBoxExtender ID="FilteredTextBoxExtender1" TargetControlID="numberOfNights"
FilterType="Numbers" runat="server">
</ajaxToolkit:FilteredTextBoxExtender>
<p>Preferred Hotel:</p>
<asp:TextBox ID="preferredHotel" runat="server" Width="450px"></asp:TextBox>
<p>Preferred Hotel URL:</p>
<asp:TextBox ID="preferredHotelURL" runat="server" Width="450px"></asp:TextBox>
</asp:Panel>
</div>
3.2。住宿(*)
夜数(*):
首选酒店:
首选酒店网址:
以及我使用的jquery函数:
$(document).ready(function () {
$("#MainContent_PanelAccommodation").hide("fast");
$('#<%= accomodation.ClientID%>').find('input:radio').click(function () {
var selVal = $('#<%= accomodation.ClientID %>').find('input:checked').val();
if (selVal == "Required") {
$("#MainContent_PanelAccommodation").show("fast");
}
if (selVal == "Not Required") {
$("#MainContent_PanelAccommodation").hide("fast");
}
})
});
$(文档).ready(函数(){
$(“主要内容”)隐藏(“快速”);
$('#')。查找('input:radio')。单击(函数(){
var selVal=$('#').find('input:checked').val();
如果(selVal==“必需”){
$(“主要内容”)显示(“快速”);
}
如果(selVal==“不需要”){
$(“主要内容”)隐藏(“快速”);
}
})
});
请注意,jquery上的ID有“MainContent”,而HTML上的ID没有,这是因为如果您检查代码并查找面板,它也可能会显示与MainContent\u面板类似的ID,因为它继承自:
<asp:Content ID="Content3" ContentPlaceHolderID="MainContent" runat="server">
希望这能帮助人们解决同样的问题。mydiv是隐藏元素的后代吗?你能找到单选按钮吗?这段代码有什么好处:console.log($('#').find('input:radio'))
?myDiv的标记是什么?是的,我找到了单选按钮。正如我所说,该警报是有效的,因此我知道我得到了rbl的值。#mydiv只是一个简单的div。我还删除了它,并尝试使用一个,并用它的ClientID引用了myph。还是一样的结果。我正在使用母版页,所以我也尝试了ct100类型的ID在我的参考…没有改变。