За последние 24 часа нас посетили 40960 программистов и 1813 роботов. Сейчас ищут 875 программистов ...

валидация полей формы

Тема в разделе "JavaScript и AJAX", создана пользователем TigerZaka, 9 сен 2012.

  1. TigerZaka

    TigerZaka Активный пользователь

    С нами с:
    16 сен 2011
    Сообщения:
    189
    Симпатии:
    1
    ребят, подскажите что надо дописать/переписать
    есть такие поля:
    Код (Text):
    1.  
    2. <dl>
    3.             <dt><label for="user_email">Email:</label></dt>
    4.             <dd><input type="text" name="user_email" id="user_email" /></dd>
    5.         </dl>
    6.         <dl>
    7.             <dt><label for="user_passwd">Пароль:</label></dt>
    8.             <dd><input type="password" name="user_passwd" id="user_passwd" /></dd>
    9.         </dl>
    проверяю поля так:
    Код (Text):
    1.  
    2. $(document).ready(function(){
    3.     function validate_mail() {
    4.         var regex = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
    5.         $(".error").each(function () { $(this).remove();});
    6.         if($('#user_email').val() == '') $('dl:has(#user_email)').after('<div class="error"><span>заполните поле email</span></div>');
    7.         else if(regex.test($('#user_email').val())) $('dl:has(#user_email)').after('<div class="error"><span><img src="../img/ok.png" width="25px" /></span></div>');
    8.         else if(!regex.test($('#user_email').val())) $('dl:has(#user_email)').after('<div class="error"><span>неправильный email</span></div>');
    9.  
    10.     }
    11.     function validate_passwd() {
    12.         $(".error").each(function () { $(this).remove();});
    13.         if($('#user_passwd').val().length === 0) $('dl:has(#user_passwd)').after('<div class="error"><span>заполните поле пароль</span></div>');
    14.         else if($('#user_passwd').val().length < 6) $('dl:has(#user_passwd)').after('<div class="error"><span>Пароль менее 6 символов</span></div>');
    15.     }
    16.     //проверка почты
    17.     $('#user_email').blur(function(){ validate_mail(); });
    18.     $('#user_passwd').blur(function(){ validate_passwd(); });
    19. });
    Беда вот с чем (предположим, что оба поля ругаются), когда увожу фокус с первого поля, рядом с ним всплывает сообщение об ошибке, а ухожу со следующего, он в первом убирает, а у второго показывает. Как сделать, чтобы ошибка исчезала только когда поле выполнит правило?