首页 > 解决方案 > 当我长按键盘上的一个键时,事件输入错误页面

问题描述

我遇到的问题是在一个输入事件中,当我写我的电子邮件时,我有一个输入事件的功能,它检查电子邮件是否有效。因此,当无效时,我使用 innerHTML 来显示消息无效电子邮件。问题是当我长按键盘上的一个键时,每次都会执行我的 else 并且我的页面变慢并出现错误!请问我该如何解决这个问题?这是我的 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();
    }
});

谢谢你的帮助!

标签: javascripthtmlcssdom

解决方案


我建议你使用模糊事件

例子:

newsletter_email.addEventListener('blur', (e) => {
    // Logic to check the email
});

因此,在这种情况下,您在失去焦点时检查电子邮件。当用户按一个字符时检查电子邮件没有用。


推荐阅读