Javascript 在输入时验证电子邮件
我想在按下enter按钮时验证电子邮件文本框。一个问题是:当我按下enter键时,文本消失,什么也没有发生 我的代码: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) {
$(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();
}
});