根据下拉列表中的用户选择显示/隐藏文本框或整个div部分的最佳方法是什么?我不相信它可能与服务器控件,所以我将不得不使用常规客户端HTML控件,对吗?感谢您的任何意见。 jQuery会是最好的选择吗?有没有办法默认隐藏Div,然后在用户从下拉列表中选择选项时显示它?
<div id="divLimitPrice">Limit Price<br />
<asp:TextBox ID="txtLimitPrice" runat="server" ValidationGroup="ValidationGroupOrder"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvLimitPrice" runat="server" ControlToValidate="txtLimitPrice" ErrorMessage="This is a required field."></asp:RequiredFieldValidator>
</div>
<script type="text/javascript">
$(function () {
$('[id*="ddPriceType"]').on('change', function () {
var val = this.value,
$divLimitPrice = $('[id*="divLimitPrice"]');
if (val === 1 || val === 2) {
// Hide div group
$divLimitPrice.hide();
} else {
// Show div group
$divLimitPrice.show();
}
});
});
</script>
Price Type<br />
<asp:DropDownList ID="ddPriceType" runat="server" ValidationGroup="ValidationGroupOrder">
<asp:ListItem Value="" Text ="Select a Price Type" />
<asp:ListItem Value="2" text="Type 2" />
<asp:ListItem Value="3" text="Type 3" />
<asp:ListItem Value="4" text="Type 4" />
</asp:DropDownList>
<asp:RequiredFieldValidator ID="rfvPriceType" runat="server" ControlToValidate="ddPriceType" ErrorMessage="This is a required field."></asp:RequiredFieldValidator>
<div id="divLimitPrice">Limit Price<br />
<asp:TextBox ID="txtLimitPrice" runat="server" ValidationGroup="ValidationGroupOrder"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvLimitPrice" runat="server" ControlToValidate="txtLimitPrice" ErrorMessage="This is a required field."></asp:RequiredFieldValidator>
</div>`
嗯..我尝试调整代码而我错过了一些东西!有什么想法吗?谢谢你的时间。
答案 0 :(得分:2)
没有什么是不可能的。你可以做任何你在问题中提出的问题。也无需切换到普通的HTML控件。如果要隐藏文本框或div,则无关紧要。我将向您展示一个带有aspx控件的简单示例。按照相同的方式,你会得到你期望的结果。
检查此链接
在div标签内部,您可以使用任何aspx控件
<div>
<asp:textbox id="TxtSample" runat="server" />
</div>
Or Instead of DIV you can use Panels too
<asp:Panel ID="PnlLogin" runat="server">
-- -- Your Controls Here
</asp:panel>
答案 1 :(得分:0)
您可以使用.jquery
。
$(function () {
$('[id*="dropdown"]').on('change', function () {
var val = this.value,
$txtbox = $('[id*="txtLimitPrice"]');
if (val === 1 || val === 2) {
// Hide text box
$txtbox.hide();
} else {
// Show text box
$txtbox.show();
}
});
});