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



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

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

.textbox1 {
            color:gray;
        }
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";
}

这很简单:

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

ie10及以上版本

占位符是一个很好的选择,如果你不关心ie9及以下版本。

可以使用占位符吗?

ie8和ie9

如果你仍然需要照顾ie8和ie9,你可能想看看-

AjaxControlToolKit的TextBoxWatermark

你可能不需要JS,你可以很容易地通过。CSS

#TextBox1{
    color:grey; //or any color you want
}
#TextBox1:focus{
    color:white;
    background-color:black;//any color you want
}

小提琴来了

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

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

相关内容

  • 没有找到相关文章

最新更新