0

我正在尝试制作一些用于输入/退出(onfocus/onblur)文本字段的javascript。我想要褪色的“预输入”文本,当您输入该字段时会消失。问题是测试是否应该删除文本框的值。一种方法是在输入时检查文本字段的值,如果它等于预先输入的文本,则将该值设置为空,如下所示:

if(field.value=='username'){
    field.value='';  //removes pretyped text
    field.style.color='rgb(0, 0, 0,)';  //turns text black
}

但是,用户可以复制预先输入的文本,并且在输入该文本后,它也将被删除。我想这是一个小问题,但我想尽可能专业。为了解决这个问题,我尝试测试文本字段中文本的颜色,因为用户无法复制变灰的预输入文本的颜色。我使用了这段代码:

if(field.style.color=='rgb(150, 150, 150)'){ //default color in CSS
    field.value='';  //removes pretyped text
    field.style.color='rgb(0, 0, 0,)';  //turns text black
}

由于某种原因,这不起作用。预先输入的文本仍然存在,颜色不会改变。我很确定访问 CSS 颜色的语法是正确的(field.style.color),因为它可以将颜色设置为黑色(但仅在测试字段值时)。

任何帮助表示赞赏:)

编辑:我的实际代码中没有多余的逗号。

4

1 回答 1

2

正如@MichaelBerkowski 所说,的价值field.style.color是未定义的。

选项1

如果您在 javascript 中设置该值:

txt.style.color = 'rgb(150, 150, 150)';

您的代码应该可以工作。看到这个小提琴

选项 2

您还可以使用:

window.getComputedStyle(this).getPropertyValue('color');

这将获得 CSS 中设置的值。看到这个小提琴

于 2013-08-17T22:40:48.170 回答