2013-10-07 21 views
1

所以我有一個搜索文本框在我的網站頂部的主頁,我希望消失時,用戶轉移到我的搜索頁面。我的文本是這樣寫這樣:Javascript功能隱藏在PageLoad上的HTML文本

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

最好的辦法我能想到這樣做是有一些JavaScript在我的搜索頁面的pageLoad的事件中運行,像這樣:

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:文本框,我可以很容易地隱藏使用:

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

我不明白爲什麼隱藏HTML文本框是如此困難。任何建議或想法如何補救這將不勝感激!

+0

你試過'visiblity:hidden'嗎? –

+0

是的,它不起作用。 –

回答

1

Page_Load是服務器端事件,但您還必須等待在客戶端加載該元素。你可以用你的js代碼在window.onload處理程序:

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

此外,使用display: none由SLaks解釋。

+0

我不得不在我的頁面加載中刪除一些代碼,但它的工作原理!非常感謝你 :) –

1

display: hidden不是有效的CSS值。

你想要display: none

+0

我已經試過'沒有',它仍然不起作用 –