Задать вопрос
@UncleDenn

Валидация на Jquery?

Всем привет!
написал скрипт валидаци ,но не могу разобраться с одной проблемой.
При нажатии на кнопку submit скрипт должен проверить, есть ли ошибки в инпутах и вывести их как в скрипте выше.
Подскажите как это сделать.

$(document).ready(function () {

     $('#name, #email, #password, #cvv').unbind().blur(function() {

         var id = $(this).attr('id');
         var val = $(this).val();
         console.log(id);

       switch(id) {
            //name
            case 'name':
               
               var rv_name = /^[a-zA-Zа-яА-Я]+$/; 
               
               if(val.length > 2 && val != '' && rv_name.test(val)) {
                    $(this).addClass('not_error');
                    $('#check-name').animate({'opacity': '1'},400);
                   
                   if($('.error-name').css("display") == "block" && $(this).hasClass('error')) {
                        $(this).removeClass('error');
                        $('.error-name').slideUp("fast");
                   }
               } else {
                   $(this).addClass('error');
                   if ($('#check-name').css("opacity") == "1" && $(this).hasClass('not_error')) {
                      $(this).removeClass('not_error');
                      $('#check-name').animate({'opacity': '0'},400);
                   }
                  $('.error-name').html('Имя должно содержать более 2х символов').slideDown("fast");
               }

               
            break;

           // email
           case 'email':
               
               var rv_email = /^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/;
               
               if(val != '' && rv_email.test(val)) {
                    $(this).addClass('not_error');
                    $('#check-email').animate({'opacity': '1'},400);
                   
                   if($('.error-email').css("display") == "block" && $(this).hasClass('error')) {
                        $(this).removeClass('error');
                        $('.error-email').slideUp("fast");
                   }
               } else {
                   $(this).addClass('error');
                   if ($('#check-email').css("opacity") == "1" && $(this).hasClass('not_error')) {
                      $(this).removeClass('not_error');
                      $('#check-email').animate({'opacity': '0'},400);
                   }
                  $('.error-email').html('Введите email').slideDown("fast");
               }
               
           break;

          // password
          case 'password':
              if(val.length >= 5 && val != '') {
                  
                   $(this).addClass('not_error');
                   $('#check-password').animate({'opacity': '1'},400);   
                  
                  if($('.error-password').css("display") == "block" && $(this).hasClass('error')) {
                        $(this).removeClass('error');
                        $('.error-password').slideUp("fast");
                   }
               } else {
                   $(this).addClass('error');
                   if ($('#check-password').css("opacity") == "1" && $(this).hasClass('not_error')) {
                      $(this).removeClass('not_error');
                      $('#check-password').animate({'opacity': '0'},400);
                   }
                  $('.error-password').html('Пароль должен быть длинее 5 символов').slideDown("fast");
              }
               
          break;
               
         // cvv       
         case 'cvv':
              if(val.length >= 3 && val != '') {
                  
                   $(this).addClass('not_error');
                   $('#check-cvv').animate({'opacity': '1'},400); 
                  
                  if($('.error-cvv').css("display") == "block" && $(this).hasClass('error')) {
                        $(this).removeClass('error');
                        $('.error-cvv').slideUp("fast");
                   }
               } else {
                   $(this).addClass('error');
                   if ($('#check-cvv').css("opacity") == "1" && $(this).hasClass('not_error')) {
                      $(this).removeClass('not_error');
                      $('#check-cvv').animate({'opacity': '0'},400);
                   }
                  $('.error-cvv').html('Введите CVV').slideDown("fast");
              }
               
          break;

       } // end switch

     }); // end blur

 $('#send').click(function(e){
     if($('.not_error').length == 4)
     {
      location.reload() 
     } else {

         if($('#name, #email, #password, #cvv').hasClass('error') || $('#name, #email, #password, #cvv').val().length == 0) {
             $('.error-name').html('Имя должно содержать более 2х символов').slideDown("fast");
                               $('.error-email').html('Введите email').slideDown("fast");
                               $('.error-password').html('Пароль должен быть длинее 5 символов').slideDown("fast");
                               $('.error-cvv').html('Введите CVV').slideDown("fast");
         
        return false;
    }
     }

   }); // end submit

  }); // end script
  • Вопрос задан
  • 177 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
$('form').submit(function(){
//обработка полей
//возвращаем true при правильной заполненности полей формы и false в случае ошибки валидации
});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 дек. 2024, в 14:07
15000 руб./за проект
22 дек. 2024, в 13:01
50000 руб./за проект
22 дек. 2024, в 10:44
15000 руб./за проект