Javascript阻止自动完成

时间:2013-02-03 01:15:26

标签: javascript prototypejs

我最近开始使用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.

谢谢!
* 还有一个问题,为什么在变为蓝色(再次变为白色)后,顶部会出现灰色边框?

2 个答案:

答案 0 :(得分:1)

解决此问题的一种简单方法是使用keyup事件代替keypress

因为keypress在值更改之前触发,而keyup在之后触发。

答案 1 :(得分:0)

最后一个问题: 浏览器有自己的默认样式。如果你想用这个CSS删除大纲。

input:focus {
    outline: none;
}