AntonBrock
@AntonBrock
screen light

Фокус при повторном клике на input, как убрать то что уже было вызвано функцией?

Привет! Получается я вызываю и добавляю стили при неправильном вводе email, но мне нужно еще сделать
так, чтобы если нажимаешь снова, то данные красные буквы и стили уходили. Пытался сделать через off(), focus(), .css(), но пока получилось только убрать подчеркивание только у input'а, с помощью :focus { border: none}, а вот с текстом не могу сделать, рад буду помощи!

$(document).ready(function() {
  $(".input_form").blur(function() {
    if ($(this).val() != "") {
      var pattern = /^([a-z0-9_\.-])+@[a-z0-9-]+\.([a-z]{2,4}\.)?[a-z]{2,4}$/i;
      if (pattern.test($(this).val())) {
        $(this).removeClass("error").off();
      } else {
        $(this).addClass("error");
  $("#test").fadeIn(600).css({ display: "block" }).text("WRONG EMAIL");
      }
    }
  });
});
/*(не правильное добавление .css, не работает)*/
  • Вопрос задан
  • 167 просмотров
Решения вопроса 1
AntonBrock
@AntonBrock Автор вопроса
screen light
Благодаря DanKud получил то, что нужно, ну и спасибо за помощь еще wagoodoogoo
Нужно было просто вещать событие .on(focus), а wago же подсказал то, как убрать уже когда верно введено все! Спасибо , рябят!
1)
$('.input_form').on('focus', function() {
/* либо если вешать на клик:
$('.input_form').on('click', function() { */
    $(this).removeClass('error');
    $('#test').hide();
});

2)
if (pattern.test($(this).val())) {
        $(this).removeClass("error");
        $("#test").fadeOut(600).css({ display: "none" }).text("");
      }
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы