2011-01-31 4 views
0

У меня проблема, когда у меня есть 3 поля ввода. Первое поле для имени пользователя, а два других поля предназначены для проверки пароля. Теперь поля пароля не могут содержать поле имени пользователя, поэтому я написал логику для отображения сообщения, если поля пароля содержат какую-либо часть имени пользователя. Однако, если в поле имени пользователя ничего нет, это же сообщение проверки все еще срабатывает, если что-то вводится в поле пароля.Ошибка проверки достоверности JS, даже если значение не вводится

Вот код

код становится поле Имя пользователя:

if (document.getElementById("tUserName")) { 
     uN = document.getElementById("tUserName").value; 
    } 
    else { 
     uN = ""; 
    } 

Пользователь поле Имя Regex:

containsUsername = new RegExp(uN); 

это код, который отвечает за ошибки проверки сообщение:

if (document.getElementByIdd("tUserName")) { 
     if (containsUsername.test(value)) { 
      dojo.addClass(dojo.byId('result-userName'), 'hide'); 
     } 
     else { 
      dojo.removeClass(dojo.byId('result-userName'), 'hide'); 
     } 
    } 
+0

Я стараюсь думать о хорошем, надежном способе для регулярного выражения, которое не соответствует ни одной строке. Может быть, что-то вроде '/ [^ \ s \ S] /'? – Pointy

ответ

1

Я беспокоюсь, что мне, должно быть, не хватает смысла здесь, так что несите меня, если я ...

Так вы хотите, чтобы ошибка проверки не отображалась, когда они вводили пароли без каких-либо изменений в поле имени пользователя?

Можете ли вы не просто проверить, что имя пользователя имеет значение чего-то другого, кроме пустой строки, прежде чем пытаться запустить его через регулярное выражение?

if (document.getElementById("tUserName")) { 
    if (document.getElementById("tUserName").value != '' && containsUsername.test(value)) { 
     dojo.addClass(dojo.byId('result-userName'), 'hide'); 
    } 
    else { 
     dojo.removeClass(dojo.byId('result-userName'), 'hide'); 
    } 
} 
Смежные вопросы