2014-01-22 40 views
4

入住这Jfiddle http://jsfiddle.net/TyJy4/9/的Javascript拆分的第一条记录创建一个错误

这里有users.If阵列的用户名是正确的,你被允许去密码field.The代码工作正常除当我第一次在用户名中输入第一条记录(用户)时。

条件时user记录工作

  1. 当我输入用户和空间,然后标签(这里会抛出错误说它不以dB为单位存在。)然后退格,然后按Tab它,去密码字段。
  2. 当我输入user2(或除第一个以外的任何其他用户),然后键入user

回答

0

在返回true之前,您需要放置代码以删除readonly。看看做出这样的转变解决了您的问题(它似乎对我来说):

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循环的性能。

+0

它的工作....但我没有得到它为什么它的作品除了第一个记录的其余部分? –

+0

我明白为什么它不适用于第一个,但我同样不确定为什么它能为其余的工作。我更新了我的答案,以便为您提供另一种(和更短的)编写该部分的方法。 – Rhyono

相关问题