我正在尝试为进入/退出(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),因为它可以将颜色设置为黑色(但仅在测试字段的值时)。
感谢任何帮助:)
编辑:我的实际代码中没有额外的逗号。
答案 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。