Javascript 使用onfocus和onblur从asp文本框中删除默认文本

Javascript 使用onfocus和onblur从asp文本框中删除默认文本,javascript,asp.net,onfocus,Javascript,Asp.net,Onfocus,我试过这样做,但似乎不起作用。下面是我的代码。当文本框获得焦点时,颜色变为黄色,但默认文本保持不变。如果清除文本并失去焦点,则文本框将以灰色文本显示“未定义”。最终,我希望默认文本为灰色,焦点上的输入文本为黑色。另外,我想在对焦时更改文本框的背景色。如有任何建议,将不胜感激 HTML <asp:TextBox ID="TextBox1" runat="server" value="Enter Last Name" onfocus="gotFocus(this)" onblur="lostF

我试过这样做,但似乎不起作用。下面是我的代码。当文本框获得焦点时,颜色变为黄色,但默认文本保持不变。如果清除文本并失去焦点,则文本框将以灰色文本显示“未定义”。最终,我希望默认文本为灰色,焦点上的输入文本为黑色。另外,我想在对焦时更改文本框的背景色。如有任何建议,将不胜感激

HTML

<asp:TextBox ID="TextBox1" runat="server" value="Enter Last Name" onfocus="gotFocus(this)" onblur="lostFocus(this)" Width="175px" CssClass="textbox1"></asp:TextBox>
Javascript

function gotFocus(obj)
{
    if (obj.value == obj.defaultvalue)
        obj.value = "";

    obj.style.color = "black";
    obj.style.backgroundColor = "yellow";
}

function lostFocus(obj)
{
    if (obj.value == "")
    {
        obj.value = obj.defaultvalue;
        obj.style.color = "gray";
    }

    obj.style.backgroundColor = "transparent";
}

你可以很容易地使用CSS,而不用Javascript

#TextBox1 { /* default style */
    color: grey;
}

#TextBox1:focus { /* style to apply on focus */
    color: black;
    background: /* some color */;
}

您可能不需要JS,您可以通过以下方式轻松完成您的需求<代码>CSS

#TextBox1{
    color:grey; //or any color you want
}
#TextBox1:focus{
    color:white;
    background-color:black;//any color you want
}
这是一个容易相处的家伙:

<asp:TextBox ID="TextBox1" runat="server" AutoPostBack="True" placeholder="default value"  Width="175px"></asp:TextBox>

IE 10及以上 如果您不关心IE 9及以下版本,占位符是一个不错的选择

IE 8和9 如果您仍然需要处理IE8和IE9,您可能需要查看-


您在哪里设置defaultvalue?您听说过这个属性吗?非常感谢您,它变得更漂亮了。#对say.“.”(#Textbox对.Textbox)的意思是什么?#代表id属性。这是上课用的
<asp:TextBox ID="TextBox1" runat="server" AutoPostBack="True" placeholder="default value"  Width="175px"></asp:TextBox>