在Javascript函数中取消隐藏ASP文本框控件

时间:2010-09-01 18:13:47

标签: .net javascript asp.net

我有以下控件:

<asp:TextBox ID="textbox1" runat="server" Width="95px" MaxLength="6" />

我希望在页面加载时隐藏/隐藏,并在单击按钮/运行一些javascript而不重新加载页面时显示文本框。

这是我当前的按钮:

<asp:Button ID="cmdShowBox" runat="server" Text="Show Button" onclick="showBox(); return false"  />

最后这是我目前的javascript函数:

                function showBox() {
                var theControl = document.getElementById("<%= textbox1.ClientID %>");
                theControl.style.display = "none";


                }

我开始只是在加载时显示框,然后尝试单击按钮使其隐藏,但我甚至无法使其工作:(当我运行代码,因为它在上面我得到一个服务器错误,说

编译器错误消息:BC30451:未声明名称“textbox1”。

感谢您提供任何帮助/建议。

2 个答案:

答案 0 :(得分:4)

onclick on按钮绑定到服务器端方法。 使用普通的html按钮或在asp:按钮上使用OnClientClick。在服务器上的文本框上设置可见的假,甚至不会通过设置显示无的css来首先重新启动控件。

答案 1 :(得分:1)

如果要将服务器端可见属性设置为false,则不会在客户端上呈现控件。这也是为什么你可以得到textbox1错误消息。而是做:

<asp:TextBox id="textbox1" ... style="display:none" />

然后这个元素被渲染,但是被隐藏了。那应该可行。

function showBox() {
    var theControl = document.getElementById("<%= textbox1.ClientID %>");
    theControl.style.display = "";
}

显示它。