我想在按下回车键时验证电子邮件文本框。一个问题:当我按下输入时,文字消失,没有任何反应。
我的代码:
$(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;
}
}
答案 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();
}
});