function checkStr(elem) {
var reg=/[0-9a-z]+[.-]?[0-9a-z]+/i;
var result=reg.test(document.getElementById(elem).value);
if (!result) {
document.getElementById(elem).focus(); <<<----- а вот так будет висеть!!!!!!!!!!
alert("Логин может содержать только латинские буквы, цифры, символы '-' и '.'");
}
}
<INPUT TYPE=TEXT NAME=UserId MAXLENGTH=20 id="UserId" onBlur="checkStr('UserId')">
Передача и потеря фокуса ввода
Код:
Функция предназначена для проверки логина по регулярке. Висит она на событии onBlur текстового элемента.
Проблема вот в чем. Набирает пользователь неверный логин. Поле теряет фокус. Выводится сообщение и дальше можно делать что хочешь. Т.е. можно продолжать например заполнение других полей. Если при несоответствии шаблону снова передавать фокус проблемному элементу, то возникнет бесконечные передача и потеря фокуса.
Как бы сделать, чтобы, незаполнив правильно поле с логином, пользователь ничего не смог сделать?