我正在尝试使一些javascript进入/退出(onfocus/onblur)textfields。我想褪去“pretyped”文字,当你输入字段时会消失。问题是测试是否应删除文本框的值。一种方法是检查在进入文本字段的值,如果它等于pretyped文本,然后将值设置为无,就像这样:style.color if-statement not working
if(field.value=='username'){
field.value=''; //removes pretyped text
field.style.color='rgb(0, 0, 0,)'; //turns text black
}
然而,用户可以复制pretyped文本,并输入该文本后,它也将被删除。我想这是一个小问题,但我希望尽可能地专业。为了解决这个问题,我尝试测试文本字段中文本的颜色,因为用户无法复制灰色预先定义文本的颜色。我使用此代码:
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),因为它可以将颜色设置为黑色(但只在测试字段值时)。
任何帮助表示赞赏:)
编辑:有我的实际代码没有多余的逗号。
虽然语法可能正常,但浏览器如何在内部表示颜色可能与您的字符串不同。用'console.log(field.style.color)'检查它,看看浏览器使用了什么字符串,因此你需要在你的'if()'中比较哪个字符串。 –
您是指占位符文本?这是一个标准的HTML字段行为... – kunalbhat
如果你想专业,使用占位符属性,而不是输入默认文本 –