检查这个 Jfiddle http://jsfiddle.net/TyJy4/9/
这里有一个用户数组。如果用户名正确,您可以进入密码字段。代码工作正常,除了当我在第一个用户名中键入第一条记录(用户)时时间。
用户
记录生效的条件
- 当我输入用户名和空格,然后按 Tab 键(这里会抛出错误,提示它在数据库中不存在。)然后退格键,然后按 Tab 键,转到密码字段。
- 当我键入
user2
(或除第一个用户之外的任何其他用户)然后键入user
时。
最佳答案
您需要放置代码以在返回 true 之前删除只读。看看进行该更改是否可以为您解决问题(对我来说似乎是):
for (var j=0; j<names.length; j++){
if(names[j].localeCompare(x)==0){
z.removeAttribute("readonly", 0);
return true;
}
}
以上可以简化为:
if(names.indexOf(x) != -1){
z.removeAttribute("readonly", 0);
return true;
}
这使用内置的 indexdOf()
,它可能是用 C++ 编写的,这应该会比您的 for
循环提高性能。
关于Javascript 拆分为第一条记录创建错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21276275/