我试图隐藏两个下拉列表基于一个值从“选择”下拉列表。我想隐藏的是Asp:DropDownList。select类如下所示:
<select class="form-control" id="number_rooms">
<option>1</option>
<option>2</option>
</select>
当值为1时,应隐藏下拉列表。当值为2时,用户应该会看到它们。
代码:
<asp:DropDownList ID="droplist1" CssClass="form-control" runat="server">
<asp:ListItem>2</asp:ListItem>
<asp:ListItem>1</asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="droplist2" CssClass="form-control" runat="server">
<asp:ListItem>2</asp:ListItem>
<asp:ListItem>1</asp:ListItem>
</asp:DropDownList>
从以前的帖子中尝试过一些Jquery,但似乎都没有用。
JQuery代码:
$(function () {
$("#number_rooms").change(function() {
$("#droplist1").hide();
$("#droplist2").hide();
});
});
也曾尝试过这样做:
$(function () {
if ($("#number_rooms").val() == 1)
$("#droplist1").hide();
$("#droplist2").hide();
});
默认情况下值为1,因此在页面加载时应隐藏该值,如果用户选择value =2,则应显示该值。
希望有人能看到我做错了什么。
发布于 2015-07-23 08:48:27
当asp:DropDownList被呈现其id更改以包含容器的id时
所以您的DropDownList可以使用这样的id来呈现
<select class="form-control" id="mycontainer_droplist1">
<option>...</option>
</select>
您可以使用
$("#<%= droplist1.ClientID %>").hide();
$("#<%= droplist2.ClientID %>").hide();
或者您可以更改asp:DropDownList的声明,使其ID保持静态,并避免其容器id将ClientIDMode设置为默认id生成。
ClientID值是通过将每个父命名容器的ID值与控件的ID值连接起来生成的。在呈现多个控件实例的数据绑定场景中,在控件的ID值前面插入一个递增值。每个段用下划线字符(_)分隔。
<asp:DropDownList ClientIDMode="static" ID="droplist2" CssClass="form-control" runat="server">
<asp:ListItem>2</asp:ListItem>
<asp:ListItem>1</asp:ListItem>
</asp:DropDownList>
静态: ClientID值被设置为ID属性的值。如果控件是命名容器,则该控件将用作其包含的任何控件的命名容器层次结构的顶部。
https://stackoverflow.com/questions/31592748
复制