@dfgsdgsdfgs

Почему не работает проверка e-mail,?

Так не работает onfocus не работает,
let re = /^[\w-\.]+@[\w-]+\.[a-z]{2,4}$/i;
let myMail = document.getElementById("email").value;
let valid = re.test(myMail);

let mail = document.getElementById("email");
let errormail = document.getElementById("error-email");

mail.onblur = function() {
  if ( !valid ) { 
    mail.classList.add('invalid');
    errormail.innerHTML = 'Your Name is Required.'
    console.log("Работает");
  }
};

mail.onfocus = function() {
  if (this.classList.contains('invalid')) {
    // удаляем индикатор ошибки, т.к. пользователь хочет ввести данные заново
    this.classList.remove('invalid');
    errormail.innerHTML = "";
    mail.classList.remove('invalid');
    console.log("Не Работает");
  }
};


а вот при клике по кнопке работает

butsubmit.onclick = function() {

  function ValidMail() {

    let re = /^[\w-\.]+@[\w-]+\.[a-z]{2,4}$/i;
    let myMail = document.getElementById("email").value;
    let valid = re.test(myMail);
   
    let mail = document.getElementById("email");
    let errormail = document.getElementById("error-email");

    let submit = document.getElementById('but-submit');

    if (valid){

      mail.classList.remove('invalid');
      errormail.innerHTML = "";
      submit.style.cursor = null;

    }
    else{

      mail.classList.add('invalid');
      errormail.innerHTML = 'Please Enter Valid Email';

      submit.style.cursor = "not-allowed";

    }  
 
}

 ValidMail();

};
  • Вопрос задан
  • 60 просмотров
Пригласить эксперта
Ответы на вопрос 1
@PetrPo
У тебя валидация только при загрузке страницы, перенеси в onblur
let myMail = document.getElementById("email").value;
let valid = re.test(myMail);
Ответ написан
Ваш ответ на вопрос

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

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