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

При использовании плагина maskedinput.js не очищается состояние ошибки oninput="setCustomValidity('')"?

Приветствую) Почему при использовании плагина (maskedinput.js) не очищается состояние ошибки oninput="setCustomValidity('')" и не отсылается ajax отправка формы?
Если заполнить сразу форму правильно, то всё ок отправляется.
Если заполнить имя, но не заполнить телефон, то как и полагается появляется сообщение ('Оставьте телефон для связи')... Но когда заполняешь телефон, то ошибка не пропадает и форма не отправляется, хотя значение console.log($('.phone').val()); в консоли показывает что поле не пустое! Если отключить плагин (maskedinput.js) , то тоже всё ок отправляет....В чём может быть проблема? Помогите пожалуйста(((

HTML:
<form class="form">
          <div class="container">
            <div class="row">
              <div class="col-lg-6 col-md-6">
                <input type="text" name="name" placeholder="Имя" required oninvalid="this.setCustomValidity('Представьтесь пожалуйста')" oninput="setCustomValidity('')">
                <input class="phone" type="text" name="phone" placeholder="Телефон" required oninvalid="this.setCustomValidity('Оставьте телефон для связи')" oninput="setCustomValidity('')">
                <input type="email" name="email" placeholder="E-mail">
              </div>
              <div class="col-lg-12 btn__container">
                <button  class="feedback-form__btn btn">Отправить</button>
                <p class="q">* Отправляя форму, вы даете свое согласие на
                  <a href="#">обработку персональных данных</a>
                </p>
              </div>
            </div><!-- row -->
          </div><!-- container -->
        </form>



JS:
$(".phone").mask("+9(999)999-99-99");

$('.form').submit(function(e){
  e.preventDefault();
  var $form = $(this);
  $.ajax({
    type: $form.attr('method'),
    url: $form.attr('action'),
    data: $form.serialize()
  }).done(function() {
    $('.thanks-modal').show();
  });
});

$('.thanks-modal__btn').click(function(){
  $('.thanks-modal').hide();
  $('input').val('');
});

$('.feedback-form__btn').click(function(){
 console.log($('.phone').val());
});
  • Вопрос задан
  • 292 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
@vardoLP
Ват ю сэй эбаут май мама?!
подключите jquery.validate и в паре с maskedinput все будет нормально работать
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽
18 дек. 2024, в 16:42
2000 руб./за проект
18 дек. 2024, в 16:33
2000 руб./в час
18 дек. 2024, в 16:06
5000 руб./за проект