我遇到的问题在于输入事件,当我写电子邮件时,我有一个带有输入事件的功能,该功能检查电子邮件是否有效。因此,当无效时,我使用innerHTML来显示消息无效的电子邮件。问题是当我长按键盘上的一个键时,我的其他键每次执行一次,并且我的页面变慢并且出错!我该如何解决这个问题?这是我的JS代码:
let newsletter_email = document.getElementById('newsletter_email');
newsletter_email.addEventListener('input', function(e) {
let info_newsletter = document.getElementById('info_newsletter');
if(confirmEmail(newsletter_email.value)){
info_newsletter.innerHTML = "<h6 style='color: rgb(1, 196, 1);'>E-Mail valide !</h6>";
let interval_valid_email = setTimeout(function() {
info_newsletter.innerHTML = "";
}, 2000);
}else {
info_newsletter.innerHTML = "<h6 style='color:red;'>E-Mail non valide !</h6>";
e.preventDefault();
}
});
感谢您的帮助!
我建议您使用blur event
示例:
newsletter_email.addEventListener('blur', (e) => {
// Logic to check the email
});
因此,在这种情况下,当焦点丢失时,您将检查电子邮件。当用户按下单个字符时,检查电子邮件无用。