Javascript函数在PageLoad上隐藏HTML文本框

本文关键字:HTML 文本 隐藏 函数 PageLoad Javascript | 更新日期: 2023-09-27 18:34:11

因此,我在网站的顶部的母版页中有一个搜索文本框,我希望在用户转移到我的搜索页时消失该文本框。我的文本框是这样写的:

  <div class = "SearchBox">
    <form action="javascript:searchSite()">
      <input type="text" id="searchIn" />
    </form>
  </div>

我能想到的最好的方法是在我的搜索页面的 PageLoad 事件上运行一些 JavaScript,如下所示:

protected void Page_Load(object sender, EventArgs e)
    {
       if (!IsPostBack)
        {
            this.ClientScript.RegisterStartupScript(this.GetType(), "show", "<script>document.getElementById('searchIn').style.display = 'none'</script>");
        }
   }

我相当确定javascript是有效的,因为有时文本框会消失一两秒钟。无论如何,它会立即回来,不会一直隐藏。 我有一个asp:Textbox,我可以使用以下方法轻松隐藏:

  Site1 m = Master as Site1;
        m.OtherTextBox.Visible = false;

我不明白为什么隐藏HTML文本框如此困难。关于如何解决这个问题的任何建议或想法将不胜感激!

Javascript函数在PageLoad上隐藏HTML文本框

Page_Load是服务器端事件,但您还必须等待元素在客户端加载。您可以将 js 代码包装在 window.onload 处理程序中:

this.ClientScript.RegisterStartupScript(this.GetType(), "show", "<script>window.onload = function() { document.getElementById('searchIn').style.display = 'none'; }</script>");

另外,按照 SLaks 的说明使用display: none

display: hidden不是

有效的CSS值。

你想要display: none.