这个
return false
需要在
submit
直接处理程序,如下所示:
$('#home_stay_informed_form').submit(function() {
var reg = new RegExp(/^\S+@\S+\.\S+$/);
var em = $("#home_informed_email").val();
if (!reg.test(em)) {
alert('Please correct your email address.');
$("#home_informed_email").focus();
} else {
$.ajax({
type: "POST",
url: 'listSubscribe.php',
data : 'email=' + em,
success: function(msg) {
$("#home_stay_informed_form_msg").fancybox({
'titlePosition' : 'outside',
'transitionIn' : 'none',
'transitionOut' : 'none'
});
$("#home_informed_email").val('Enter your email address...');
}
});
}
return false;
});
你的
success
在服务器响应返回之前,处理程序不会运行,因此您的函数实际上正在返回
undefined
为了这个
else
声明…还有
返回false
里面没有任何效果。把它放进
提交
直接像上面这样的处理程序将做您想要的事情,防止表单提交。
再干净一点
event.preventDefault()
,在此处添加事件参数:
$('#home_stay_informed_form').submit(function(e) {
以及替换
返回false
具有
e.preventDefault();