Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在输入时验证电子邮件_Javascript_Jquery - Fatal编程技术网

Javascript 在输入时验证电子邮件

Javascript 在输入时验证电子邮件,javascript,jquery,Javascript,Jquery,我想在按下enter按钮时验证电子邮件文本框。一个问题是:当我按下enter键时,文本消失,什么也没有发生 我的代码: $(document).keypress(function(e) { if (e.which == 13) { mailcontrole(); } }); function mailcontrole { var mail = $("#email").val(); if (IsEmail(mail) == false) {

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

我的代码:

$(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)


表单可能会提交,因为当您单击enter时表单会被提交,这将清空表单。 用于使其不提交

试试这个:

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

添加一个JSFIDLE。另外,请尝试。也不要忘记提到
mailcontrole
函数有语法错误。
$(document).keypress(function(e) {
    if (e.which == 13) {
        e.preventDefault();
        mailcontrole();
    }
});