@maitre

Почему не передается переменная через замыкание в функцию?

Не могу понять, почему не передается через замыкание переменная в функцию и обратно? Необходимо передать переменную validate в первую функцию, там ее значение должно измениться на false и потом она с этим значением должна передаться во вторую функцию. Но не передается, подскажите, почему?

var validate = true;

$('.login').on('blur', function(validate) {
    const formAuthInputLogin = document.forms.formAuth.elements.login.value;
    const errLogin = $('.errLogin');

    if (formAuthInputLogin.length > 0) {
      const patternLogin = /^[a-z0-9]{4,20}$/;

      if (formAuthInputLogin.search(patternLogin) != 0) {
        errLogin.addClass('visible');
        var errLoginMessage = 'Логин может содержать только латинские буквы или цифры';
        validate = false;
      } else {
         errLogin.removeClass('visible');
      }
    }
    errLogin.text(errLoginMessage);
    return validate;
  });

$('.submit').on('click', function(e, validate) {
  if (validate) {
    alert('Форма успешно отправлена!');
  } else {
    e.preventDefault();
    alert('Форма содержит ошибки!')
  }
});
  • Вопрос задан
  • 140 просмотров
Решения вопроса 1
@Camaro67
Помог? - жми "Отметить решением"
$('.login').on('blur', function() {
// код
// return validate; - возвращать тоже не нужно
});

$('.submit').on('click', function(e) {
// код
});

И вот хороший плагин для валидации форм
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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