输入时验证电子邮件

时间:2015-05-28 09:24:23

标签: javascript jquery

我想在按下回车键时验证电子邮件文本框。一个问题:当我按下输入时,文字消失,没有任何反应。

我的代码:

$(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;
    }
}

2 个答案:

答案 0 :(得分:5)

您有使用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");
    }
}

答案 1 :(得分:1)

表单可能会提交,因为当您单击“输入”时表单将被提交,这将清空表单。 使用event.preventDefault()使其无法提交。

试试这个:

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