Задать вопрос
@Yarilo-Vitaly

Как присвоить данные из callback functions в внешнюю переменную?

Здравствуйте. Я на кнопку повесил обработчик событий (click) и при клике из input с помощью value я получаю данные.
Сonsole.log внутри функции данные отображает, а вне функции нет. Мне надо данные из input поместить во внешнюю переменную. Код можно посмотреть ели перейти по ссылки.
  • Вопрос задан
  • 134 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
nowm
@nowm
Вообще, тут всё правильно (за исключением того, что нужно писать «снаружи», а не «с наружи»). Просто вы видите в консоли undefined из-за того, что пытаетесь читать значения снаружи до того, как нажали кнопку — переменным в этот момент тупо не присвоились никакие значения.

Чтобы вы понимали логику:

// Шаг 1: Определяются переменные
let control_input1;
let control_input2;

// Шаг 2: Вешается обработчик
Proekt_button.addEventListener('click',function(){
    // Шаг 4: Кнопка нажата
});

// Шаг 3: Что-то печатается в консоль
console.log('Данные снаружи функции',control_input1);
console.log('Данные снаружи функции', control_input2);


Так вот, шаги 1, 2, и 3 выполняются сразу — без задержек. А шаг 4 выполняется только когда вы нажимаете кнопку. То есть, в момент, когда выполняется шаг 4, шаг 3 уже давно прошёл и вы увидели в консоли значение undefined не после нажатия кнопки, а до.

Чтобы у вас всё время всё было заполнено, можно определять переменные так:

// Неправильно
// let control_input1;
// let control_input2;

// Правильно — вот так надо делать
let control_input1 = Control_1.value;
let control_input2 = Control_2.value;


То есть, если до нажатия кнопки в инпутах будут какие-то дефолтные значения, они сразу попадут в эти переменные — до нажатия кнопки.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы