@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 будет вызвана только по событию.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
summer Ярославль
от 100 000 до 140 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
19 апр. 2024, в 05:01
999999 руб./за проект
19 апр. 2024, в 03:52
1000 руб./за проект