我最近开始使用Javascript,我发现我的密码。长度检查存在一个问题。
http://jsfiddle.net/uYss7/
的代码:
document.observe('dom:loaded', function() {
$('passwordan').observe('keypress', function(event) {
if (this.value.length < 5) {
this.setStyle({backgroundColor: 'blue'});
} else {
this.setStyle({backgroundColor: 'white'});
}
});
});
问题:
它会自动填充信息。
我在127.0.0.1,盒子是“passwordan”的原因仅仅是因为我想看看Firefox是否记得先前在盒子名称或id之后输入的数据,但似乎并非如此。
它会自动填充五个*,这会破坏我的Javascript。它的长度是5,如果我在框内单击,ctrl + a(标记五个*),并写一个字母(没有退格,只是替换),它仍然是白色的。它的长度现在是1,它应该是蓝色的(因为长度小于5)。如果我标记它,单击退格键并写一封信,然后按预期工作。
这是一个解释的图像:
http://makeagif.com/media/2-02-2013/pc1TSL.gif
*
pktangyue给了我修复:
A simple way to fix it is using keyup event instead of keypress. Because keypress triggered before value change, while keyup triggered after it.
谢谢!
* 还有一个问题,为什么在变为蓝色(再次变为白色)后,顶部会出现灰色边框?
答案 0 :(得分:1)
解决此问题的一种简单方法是使用keyup
事件代替keypress
。
因为keypress
在值更改之前触发,而keyup
在之后触发。
答案 1 :(得分:0)
最后一个问题: 浏览器有自己的默认样式。如果你想用这个CSS删除大纲。
input:focus {
outline: none;
}