【发布时间】:2012-03-16 17:41:31
【问题描述】:
我正在尝试在不重新加载页面的情况下获取提交表单。
这是脚本:
$(function() {
$("#submit").click(function() {
var email = document.getElementById('emailaddress');
var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
if (!filter.test(email.value)) {
$('#invalidmail').show();
var t=setTimeout(function(){$('#invalidmail').fadeOut("slow");},2000);
email.focus;
return false;
} else {
$.ajax({
type: "POST",
url: "traces_form_handler.cgi",
data: email,
success: function(){
alert("success!");
}
});
alert("success!");
return false;
};
});
});
</script>
这是html
<form name="form" method="post">
Email: <input type="text" name="email" id="emailaddress" />
<input type="submit" value="Submit" id="submit"/>
</form>
<p id="invalidmail">Ops! The address you provided is not valid. Please retry.</p>
它在无效邮件部分有效,但如果我提交一个有效的电子邮件地址,浏览器就会崩溃。
有什么建议吗?
谢谢
【问题讨论】:
-
您需要阻止表单上的默认提交操作。您正在发送 AJAX 请求并同时提交表单。
-
你也试过什么浏览器?
-
@Diodeus 不是“返回假”;做? Lix 铬!
-
我会做一些试验:而不是
alert("success!");去console.log("success")看看会发生什么像 firebug 或 chorme web 开发工具这样的调试器。 -
@DanieleB,在到达那里之前它崩溃了。