在进入时验证电子邮件

Validate email on enter

本文关键字:验证 电子邮件      更新时间:2023-09-26

我想在按回车键时验证电子邮件文本框。有一个问题:当我按回车键时,文本消失了,什么也没发生。

我代码:

$(document).keypress(function(e) {
    if (e.which == 13) {
        mailcontrole();
    }
});
function mailcontrole {
    var mail = $("#email").val();
    if (IsEmail(mail) == false) {
        alert("false");
    }
}
function IsEmail(email) {
    var regex = /^([a-zA-Z0-9_'.'-'+])+'@(([a-zA-Z0-9'-])+'.)+([a-zA-Z0-9]{2,4})+$/;
    if (!regex.test(email)) {
        return false;
    } else {
        return true;
    }
}

您有使用ENTER提交表单的默认行为。

$(document).keypress(function(e) {
    e.preventDefault();
    if (e.which == 13) {
        mailcontrole();
    }
});

添加e.preventDefault();停止此行为!

你的功能也缺少()(感谢Alex)!

function mailcontrole() {
    var mail = $("#email").val();
    if (IsEmail(mail) == false) {
        alert("false");
    }
}

表单可能会提交,因为表单是在点击enter时提交的,这将清空表单。使用event.preventDefault()使其不提交。

试试这个:

$(document).keypress(function(e) {
    if (e.which == 13) {
        e.preventDefault();
        mailcontrole();
    }
});