我最近开始使用 Javascript,发现我的 password.length 检查存在一个问题。
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.
谢谢!
*还有一个问题,为什么在变成蓝色(然后又变成白色)后顶部有灰色边框?