0

我的页面上有一些文本框,其中包含清除焦点的幽灵文本。我想出了如何在用户输入时将字体更改为黑色,但如果用户清除输入文本框,我无法弄清楚如何将字体颜色设置回银色。

任何帮助,将不胜感激

标题中的 Jquery:

$(document).ready(function () {
    $('input:text').focus(function () {
        $(this).val('');
        if ((this).val !== '') {
            $(this).css('color', 'black');
        }
    });
});

CSS:

input[type="text"] {
    color: #C0C0C0;
    text-align: center;
    font-size:18px;
    height: 30px;
    width: 150px;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    border-radius: 5px;
}

示例文本框标记:

<asp:TextBox
    ID="txtLastName"
    runat="server"
    MaxLength="50"
    onblur="if(this.value == ''){ (this.value = 'Last Name';) (this.css ('color', 'silver');)}"
    onfocus="if(this.value == 'Last Name'){this.value = '';}"
    Text="Last Name">
</asp:TextBox>
4

3 回答 3

2

您是否尝试过将所有 jQuery onBlur 和 onFocus 放入代码的 jQuery 部分?

$(document).ready(function () {
    $('input:text').blur(function () {
        if ($(this).val == '') {
            $(this).val = "Last Name";
            $(this).css('color', 'silver');
        }
    });
    $('input:text').focus(function() {
        if($(this).val == 'Last Name') {
            $(this).val = "";
            $(this).css('color', 'black');
        }
    });
});
于 2013-08-01T19:00:29.513 回答
1

您可以使用新的 HTML5 占位符属性。

于 2013-08-01T18:35:30.847 回答
1

使用占位符属性而不是所有这些,Visual Studio 可能会将其标为错误,但它在大多数浏览器中仍然可以正常工作(除非您使用的是 VS2012,否则它会识别它。

<asp:TextBox
    ID="txtLastName"
    Placeholder = "Last Name"
    runat="server"
    MaxLength="50"
    onblur="if(this.value == ''){ (this.value = 'Last Name';) (this.css ('color', 'silver');)}"
    onfocus="if(this.value == 'Last Name'){this.value = '';}"
    Text="Last Name">
</asp:TextBox>

当用户删除框中的所有文本时,占位符返回。只是不要用它代替标签,它对屏幕阅读器不友好(顺便说一句,你的做法也不是)

于 2013-08-01T18:36:41.837 回答