2011-11-30 97 views
0

我想通過使用javascript更改文本框的背景顏色,但我的代碼無法正常工作。我搜索,但沒有找到任何合適的答案。這是我的代碼。如何通過Javascript更改TextBox的背景顏色?

<head> 
    <script type="text/javascript" language="javascript"> 
     function abc() { 
      var v = document.getElementById("<%=TextBox1.ClientID%>"); 
      v.setAttribute('BackColor', 'Red'); 
     } 
    </script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
     <asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="abc()" onclick="Button1_Click"/> 
    </div> 
    </form> 
</body> 

enter image description here

+0

v.style.backgroundColor =「red」; ? –

回答

7

您正在試圖改變這種狀況是HTML的用戶界面,所以你需要使用JavaScript/CSS屬性。

Here有CSS屬性列表由JavaScript訪問。

嘗試:

<script type="text/javascript" language="javascript"> 
     function abc() { 
      var v = document.getElementById("<%=TextBox1.ClientID%>"); 
      v.style.backgroundColor = "red"; 
     } 
    </script> 

而且我有Visual Studio 2010和智能感知也告訴我style屬性:

enter image description here

你是對的擁堵,當我假裝點從通過ASP的IntelliSense不工作爲style屬性生成一個HTML的id

enter image description here

enter image description here

我覺得你這個書面方式代碼智能感知不會因爲此刻達到這個id的HTML不存在。

+0

是的,它的工作原理。謝謝。 – jams

+0

@jams您好:D – Galled

+0

我在Visual Studio 2010中查看它,但是當我輸入'v' dot時,intellisense窗口沒有'style'選項。 – jams

2

BackColor不會在客戶端存在。這是一個ASP.NET服務器端的概念。相反,你想用CSS設置:

v.style.backgroundColor = 'Red'; 

Here是CSS屬性的名稱的參考因爲它們將出現在JavaScript中。

+0

是的,它的工作原理。我使用的是Visual Studio 2008,它的intellisense窗口不會爲'v'顯示'style'。你能解釋一下爲什麼? – jams

+0

@jams我猜這是2008年沒有註冊,但在Visual Studio 2010呢。 – Galled

+1

@jams Galled是對的,2008對JavaScript intellisense的支持非常有限。如果你真的想要它,像Resharper 6 +一樣添加它,比VS 2010更好。 – vcsjones