2014-01-22 2 views
4

Проверьте это Jfiddle http://jsfiddle.net/TyJy4/9/Javascript расколоть создания ошибки для первой записи

Здесь есть массив users.If имя пользователя, право, вы имеете право перейти к коду пароль field.The работает отлично, за исключением , когда я ввожу первую запись (пользователя) в имя пользователя в первый раз.

условия, когда user запись работает

  1. Когда я ввожу имя пользователя и пространство, то вкладка (здесь он будет бросать ошибку заявив, что не существует в БД.), А затем возврат каретки, затем вкладку она, идет в поле пароля.
  2. При вводе user2 (или любых других пользователей, кроме первого), а затем введите user.

ответ

0

Вам необходимо поместить код, чтобы удалить readonly, прежде чем вы вернете 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.

+0

это сработало .... но я не понимаю, почему он работает для остальных записей, кроме первого? –

+0

Я понимаю, почему он не работает для первого, но я не уверен, почему он работает для остальных. Я обновил свой ответ, чтобы дать вам альтернативный (и более короткий) способ написания этой части. – Rhyono

Смежные вопросы