根据下拉列表中的选择隐藏和显示面板
Hide and show panel based on selection from drop down list
我创建了一个脚本,应该根据从5个下拉列表中选择的相同选项显示和隐藏一些项目。这个下拉列表中的选择是完全相同的。所以我只是想看看我的解决方案是否可以简化
HTML:<label for="ddlGift1">Gift #1</label>
<asp:DropDownList runat="server" ID="ddlGift1" AutoPostBack="true" AppendDataBoundItems="True" ClientIDMode="Static" >
<asp:ListItem Value="--" Text="--" />
</asp:DropDownList>
<label for="ddlGift2">Gift #2</label>
<asp:DropDownList runat="server" ID="ddlGift2" AutoPostBack="true" AppendDataBoundItems="True" ClientIDMode="Static" >
<asp:ListItem Value="--" Text="--" />
</asp:DropDownList>
<label for="ddlGift3">Gift #3</label>
<asp:DropDownList runat="server" ID="ddlGift3" AutoPostBack="true" AppendDataBoundItems="True" ClientIDMode="Static" >
<asp:ListItem Value="--" Text="--" />
</asp:DropDownList>
<label for="ddlGift4">Gift #4</label>
<asp:DropDownList runat="server" ID="ddlGift4" AutoPostBack="true" AppendDataBoundItems="True" ClientIDMode="Static" >
<asp:ListItem Value="--" Text="--" />
</asp:DropDownList>
<label for="ddlGift5">Gift #5</label>
<asp:DropDownList runat="server" ID="ddlGift5" AutoPostBack="true" AppendDataBoundItems="True" ClientIDMode="Static" >
<asp:ListItem Value="--" Text="--" />
</asp:DropDownList>
JS:
var gift1 = $('#ddlGift1');
var gift1 = $('#ddlGift1');
var gift2 = $('#ddlGift2');
var gift3 = $('#ddlGift3');
var gift4 = $('#ddlGift4');
var gift5 = $('#ddlGift5');
showHide();
gift1.change(function () {
showHide();
});
gift2.change(function () {
showHide();
});
gift3.change(function () {
showHide();
});
gift4.change(function () {
showHide();
});
gift5.change(function () {
showHide();
});
function showHide() {
var gift1 = $('#ddlGift1');
var gift2 = $('#ddlGift2');
var gift3 = $('#ddlGift3');
var gift4 = $('#ddlGift4');
var gift5 = $('#ddlGift5');
var vsity = $('#shvarsity');
if ((gift1.children("option:selected").text())||(gift2.children("option:selected").text())||(gift3.children("option:selected").text())||(gift4.children("option:selected").text())||(gift5.children("option:selected").text()) == "Varsity Club")
{
vsity.show();
} else {
vsity.hide();
}
}
为所有"gift"元素添加一个类,如
<asp:DropDownList runat="server" id="ddlGift1" class="gift" AutoPostBack="true" AppendDataBoundItems="True" ClientIDMode="Static" >
<asp:ListItem Value="--" Text="--" />
</asp:DropDownList>
那么JS看起来就像
var gifts = $('.gift');
showHide();
gifts.change(function () {
showHide();
});
function showHide() {
for (i in gifts) {
if (gifts[i].children("option:selected").text() == "Varsity Club")
{
vsity.show();
} else {
vsity.hide();
}
}
}
相关文章:
- 在jquery中为显示/隐藏设置cookie
- PHP Javascript显示/隐藏按钮不工作
- 打开/关闭按钮以显示/隐藏内容
- 显示隐藏复选框
- 在bootstrap中显示隐藏特定的li
- JQuery上下文菜单显示/隐藏问题
- JQuery在单击时停止显示/隐藏
- HTML5在提交并显示所需标签后显示隐藏的表单元素
- 使用 jQuery 切换显示/隐藏
- 显示/隐藏有关模型更改的指令内容
- Bootstrap在页面加载缓慢时会立即显示隐藏的模式对话框
- 根据特定条件使用ng显示/ng隐藏来显示/隐藏元素
- 显示/隐藏不起作用
- 使用ng-hide根据条件显示/隐藏按钮
- 仅在第一个结果中显示/隐藏MySQL结果函数
- 显示/隐藏http://ftp链接
- 在显示/隐藏中单击时删除的文本
- 是否可以在不重新渲染的情况下显示/隐藏父对象中的元素
- 将页面内容向左移动时显示/隐藏右侧面板
- 显示/隐藏将不会加载