@helga112358

Глобальная переменная изменяется во вложенной функции,а за пределами остается прежней?

Глобальная переменная не изменяется вне вложенной функции, нужно переменную checkName использовать в другой функции, но console.log выдает false. Хотя валидация проходит успешно. Подскажите пожалуйста в чем может быть причина?

var checkName = false;
         
     $('.userName').blur(function() {
            if($(this).val() != '') {
                var pattern = /^[a-zA-Z]+$/; 
                if(pattern.test($(this).val())){
                    checkName = true;
                    $('.nameValid').css({'display' : 'none'});
                } else {
                    $('.nameValid').css({'display' : 'block'});
                    $('.nameValid').text('Invalid name!');
                }
            } else {
                $('.nameValid').css({'display' : 'block'});
                $('.nameValid').text('Name must be filled!');
            }
        });
        console.log(checkName);
  • Вопрос задан
  • 60 просмотров
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
blur() всего лишь вешает обработчик на элементы .userName и сразу же возвращается.
Каллбэк-функция, которая может изменить checkName будет вызвана только по событию.
Ответ написан
Ваш ответ на вопрос

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

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