style.color if语句不起作用

时间:2013-08-17 21:47:19

标签: javascript

我正在尝试为进入/退出(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),因为它可以将颜色设置为黑色(但仅在测试字段的值时)。

感谢任何帮助:)

编辑:我的实际代码中没有额外的逗号。

1 个答案:

答案 0 :(得分:2)

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

选项1

如果您在javascript中设置该值:

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

您的代码应该有效。请参阅this fiddle

选项2

你也可以使用:

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

这将获得CSS中设置的值。请参阅this fiddle