我有一个javascript来调用时启用文本框,我想在用户从下拉列表中选择值“Custom”时触发此代码,以便我可以显示/隐藏这些新文本框。
function setVisibility(DropDownListID) {
var element = document.getElementById(DropDownListID);
var element1 = document.getElementById("TestBox1");
if (element.value == "Custom") {
element1.visible = !element1.visible ;
}
<asp:DropDownList ID="DateRangeDropDownList" runat="server" Enabled="True" onChange="setVisibility('DateRangeDropDownList');">
<asp:ListItem>Some Value</asp:ListItem>
<asp:ListItem>Custom</asp:ListItem>
</asp:DropDownList>
<asp:TextBox ID="TestBox1" runat="server"></asp:TextBox>
由于某种原因,它似乎不起作用。有任何想法吗?
答案 0 :(得分:0)
因为ASP.NET渲染的控件与您在函数调用中指定的不同。使用control的ClientID
属性获取服务器端控件的呈现ID属性。在这里,我将下拉列表作为参数,并通过它ClientID
访问您的文本框:
function setVisibility(yourDropdown) {
var element1 = document.getElementById(<%= TestBox1.ClientID %>);
if (yourDropdown.value == "Custom") {
element1.visible = !element1.visible ;
}
<asp:DropDownList ID="DateRangeDropDownList" runat="server" Enabled="True"
onChange="setVisibility(this);">
<asp:ListItem>Some Value</asp:ListItem>
<asp:ListItem>Custom</asp:ListItem>
</asp:DropDownList>
<asp:TextBox ID="TestBox1" runat="server"></asp:TextBox>