如果 onclick 和 onselect 中的语句在 ASP.NET 不起作用



这应该很简单,但是我已经研究了一天多了,无法弄清楚为什么这不起作用。我正在用 ASP.NET 制作一个网页。我正在尝试做的是有一个带有灰色占位符文本的文本框,当单击或选择文本框时,该文本会消失并将字体颜色更改为黑色。这是我的代码:

<asp:TextBox ID="addEditTextBox1" runat="server" onselect="if(style.color=='#999999'){style.color='Black'; this.value='';}" onclick="if(style.color=='#999999'){style.color='Black';this.value='';}" ForeColor="#999999" Width="250px">Revision #</asp:TextBox>

我尝试将"if"语句触发器更改为

if(style.color.value=='#999999'){...} 

if(ForeColor=='#999999'){...} 

if(ForeColor.value=='#999999'){...} 

和许多其他语法,但我找不到有效的语法。我确实知道 onclick 和 onselect 语句是有效的,因为如果我用"="替换"==",它们会在 100% 的时间内跳闸,但这完全否定了"if"语句的整个想法。我是 ASP.NET 和 JavaScript 的新手,所以也许我缺少一些明显的东西,但我在任何地方都找不到它。以下是我认为不相关但可能会有所帮助的其他一些信息:

  • 在 Visual Studio Professional 2012 中运行
  • 这是页面源代码的顶部:

    <html xmlns="http://www.w3.org/1999/xhtml">
    
  • 目标框架:.NET Framework 4.5。

请随时询问我是否遗漏了什么。谢谢!

要么

简单地使用 HTML5 placeholder 属性,现在所有浏览器都支持它。

或者使用它,适用于键盘制表符和鼠标单击:

<asp:TextBox ID="addEditTextBox1" runat="server" onfocus="this.onfocus = null; this.value = ''; this.style.color = 'black';" ForeColor="#999999" Width="250px">Revision #</asp:TextBox>

顺便说一句,onclick实际上只是为了按钮,你可能的意思是onmousedownonkeydown - onselect用于选择文本时(例如防止它)。

最新更新