2010-09-01 45 views
1

我有以下的控制:取消隱藏ASP文本框控件的Javascript功能

<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:名稱'文本框1'未被聲明。

感謝您的任何幫助/建議。

回答

1

如果您將服務器端visible屬性設置爲false,則不會在客戶端上呈現控件。這也是爲什麼你可以得到textbox1錯誤信息。相反:

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

然後渲染這個元素,但隱藏。那麼這應該工作。

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

要顯示它。

+0

儘管這是一個編譯器錯誤,getElementById沒有返回null ...你確定這是問題嗎? – asawyer 2010-09-01 18:20:58

+1

@Brian在'TextBox'上沒有'style'屬性。他必須關聯一個css類。 – 2010-09-01 18:23:40

+0

我也遇到了編譯錯誤,但它是一個不同的問題。我會接受Vinay的答案,但OnClientClick似乎是解決這個問題的答案。 – Jay 2010-09-01 18:23:52

4

onclick on a button is bound to a server side method。 使用正常的html按鈕或使用OnClientClick在asp:按鈕上。在服務器上的文本框中設置可見的false也不會使控件在第一個地方試圖隱藏它,通過設置一個顯示無顯示的CSS。

+0

你打我吧.. +1 – 2010-09-01 18:22:57

+0

我實際上是在使用OnClientClick,當我準備這個問題時,這只是一個錯誤。感謝您的發佈。 – Albert 2010-09-01 19:53:01

相關問題