我长按键盘上的键时的事件输入错误页面

问题描述 投票:0回答:1

我遇到的问题在于输入事件,当我写电子邮件时,我有一个带有输入事件的功能,该功能检查电子邮件是否有效。因此,当无效时,我使用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();
    }
});

感谢您的帮助!

javascript html css dom
1个回答
0
投票

我建议您使用blur event

示例:

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

因此,在这种情况下,当焦点丢失时,您将检查电子邮件。当用户按下单个字符时,检查电子邮件无用。

© www.soinside.com 2019 - 2024. All rights reserved.