@narkesss

Как реализовать валидацию емеил?

Есть несколько однотипных форм с праверкой на пустоту, нужно еще сделать проверку на email через pattern, куда его всунуть ?
<form class="js-form-template">
	<div class="form-field">
		<div class="form-field-box">
		<input class="form-field-style js-valid" type="text" name="name[]" placeholder="Ваше имя">		
		<input class="form-field-style js-valid" type="text" name="phone[]" placeholder="Телефон">		
		<input class="form-field-style js-valid" type="email" name="mail[]" placeholder="E-mail">		
	        <input class="form-field-style" type="text" name="city[]" placeholder="Город">		
		<input class="hidden" type="text" name="identify[]" value="Запрос условий сотрудничества">
	</div>
	<div class="form-check partner-check">
	    <input  id="partner-check" class="form-check-box partner-check-box hide js-check" type="checkbox" name="check[]" checked>
	   <label  class="form-check-label partner-check-label" for="partner-check">Я соглашаюсь с <a class="confidencial" target="_blank" href="conf.html">политикой конфиденциальности</a></label>
   </div>
   <input class="open-btn open-btn-white partner-btn" type="submit" name="send" value="Получить условия">
</div>
</form>


$(document).ready(function() {

  function isFormValid($form) {
    var is_correct = true;
    $form.find('.js-valid').each(function(){
      if( $(this).val() =='' ) {
         $(this).addClass('errorInput');
         $(this).parent().addClass('error');
         
            is_correct = false;
        }
    });
    return is_correct;
  };
  
  function checkValid($form) {
    var iscorCheck = false;
    $form.find('.js-check').each(function(){
      if( $(this).is(':checked')) {
        iscorCheck = true; 
      };
    });
    return iscorCheck;
  };

  $(".js-form-template").submit(function(e) {
      e.preventDefault();

      $('form .js-valid').on('keyup', function(e) {
       var  valid = true;
       var $proc_form = $(this).parents('form');
        if(isFormValid($proc_form)) {
          $(this).parent().removeClass('error');
        }
        if( $(this).val() !='' ) {
          $(this).removeClass('errorInput');
        }; 
    });

    //Валидация форм
    
      var  $proc_form = $(this);
    
      if(isFormValid($proc_form) && checkValid($proc_form)) {
        showLoad();
        $.ajax({
          type: "GET",
          url: "mail.php",
          data: $(this).serialize()
          }).done(function() {
            $.fancybox.close({ src: '.js-pop' });
            hideLoad();
            $(this).find("input").val("");
            $.fancybox.open({ src: '#oky' });
            $(".js-form-template").trigger("reset");
        });
      }
      return false;
  });

});
  • Вопрос задан
  • 148 просмотров
Решения вопроса 1
pavelkarinin
@pavelkarinin
Full Stack Web Developer
Засунуть нужно в функцию isFormValid, сразу после проверки "на пустоту". Можете использовать классические регулярные выражения для eMail, например такое:
^([a-z0-9]|_){1}((\-|\.|_*)?[a-z0-9]+)*@[a-z0-9]{1}((\-|\.)?[a-z0-9]+)*\.[a-z]{2,}$
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
reaferon
@reaferon
5ae742e84294a664980119.png
После этой фигурной скобки
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы