2014-01-22 45 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

相關問題