基於用戶從下拉列表中選擇來顯示/隱藏文本框或整個div部分的最佳方式是什麼?我不相信它可能與服務器控件,所以我將不得不使用常規的客戶端HTML控件,正確的?感謝您的任何意見。 jQuery會是最好的選擇嗎?有沒有辦法在默認情況下隱藏Div,然後在用戶從下拉列表中選擇選項時顯示它?ASP.NET服務器控件 - 根據下拉選擇顯示隱藏文本框
<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>`
嗯..我嘗試調整代碼,我錯過了一些東西!有什麼想法嗎?感謝您的時間。
使用服務器控件,你可以完成相同的行爲。 –
正如答案所示,最好的方法是在客戶端使用jQuery。 「服務器控件」可以通過切換.Visible屬性來模仿此行爲。例如,您可以在的SelectedIndexChanged事件上切換服務器端的的.Visible屬性。然後,您可以將所有內容都包裝在UpdatePanel中以使其無縫(AJAX)。 –
JAKEtheJAB