валидация email JS

всем привет. подскажите по коду...

   let  valEmail = document.getElementById("validator_email"). value,
        alarmEmail = document.getElementById("alarm_text_email");

    let testElem = /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/;
    let valid = testElem.test(valEmail);
    
    valEmail.oninput= function(){
        console.log('print');
        if (valid){
            alarmEmail.innerHTML = "норм";
        } else {
            alarmEmail.innerHTML = "не норм";
        }
        comsole.log(valid);
    }

почему valid все время false при вводе корректного e-mail ? в чем ошибка?


Ответы (1 шт):

Автор решения: vsemozhetbyt

Вам нужно получать значение valid внутри функции-обработчика. Сейчас вы его получаете один раз при загрузке страницы, когда поле ещё пустое, а потом при вводе значение переменной уже не обновляется.

→ Ссылка