Показать сообщение отдельно
  #1 (permalink)  
Старый 28.07.2012, 16:21
Аватар для Isaac
Кандидат Javascript-наук
Отправить личное сообщение для Isaac Посмотреть профиль Найти все сообщения от Isaac
 
Регистрация: 03.08.2011
Сообщений: 106

Как улучшить регистрационную форму?
Здравствуйте.
Подскажите пожалуйста.
Я написао форму проверку формы регистрации, вот код:
$(this).blur(function () {
       var _value = $(this).val(),
           reg_loginName = new RegExp(/^[a-zA-Z0-9_-]{3,16}$/).test(_value); // в данном случае выражения для проверки логина, но на форме так же есть почта, пароль, имя , фамиля, то есть для каждого поля своя переменная
            .........
       switch($(this).attr("id"))
       {
           case "id_username": // проверка для логина, но так же будет отдельный case для каждого поля(почта, пароль, имя, фамилия...)
               if((!reg_loginName) || (_value.length < 6)) // если не соответствует выражению и пользователь ввел меньше 6 символов, то красим рамку в красный цвет
               {
                   $(this).parent().parent().attr("class", "control-group error");

                   if(!(reg_loginName) && !($(".help-login-reg").length)) // если не соотсветсвует выражению, то выводим сообщение об ошибки, предворительно проверив, что данное сообщение еще не создано, чтоб не создавать одинаковых сообщений
                       $(this).parent().children(".error-list").append("<li class='help-inline help-login-reg'>Только символы латинского алфавита, цифры, дефис и подчеркивание (a–z, 0-9, -, _).</li>");
                   if((_value.length < 6) && !($(".help-login-length").length)) // если меньше 6 символо, то выводим сообщение об ошибке
                       $(this).parent().children(".error-list").append("<li class='help-inline help-login-length'>В логине должно быть не менее 6 символов.</li>");
               }
               if((reg_loginName) && (_value.length >= 6)) // если пользователь верно заполнил форму, то красим рамку в зеленый цвет
               {
                   $(this).parent().parent().removeAttr("class");
                   $(this).parent().parent().attr("class", "control-group success");
               }
               if(reg_loginName) // удаляем сообщение об ошибках, если они выводились
                   $(this).next().children(".help-login-reg").remove();
               if(_value.length >= 6) // удаляем сообщение об ошибках, если они выводились
                   $(this).next().children(".help-login-length").remove();
           break;
       }
   });


Теперь вопрос: как улучшить данный скрипт, как можно написать его в виде классов в JQuery? или более грамотно? Как вообще нужно писать подобные вещи на jQuery? подскажите пожалуйста!
p.s. javascript - пока не интересует, так как задача в том, что нужно научится делать подобные вещи именно с помоцью библиотеки jquery.
Спасибо за помощь и время!
Ответить с цитированием