我正在尝试在不重新加载页面的情况下获得提交表单。
这是脚本:
$(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>
它一直工作到无效邮件部分,但如果我提交了一个有效的电子邮件地址,浏览器就会崩溃。
有什么建议吗?
感谢
我不知道这是否会使浏览器崩溃。但是,您将一个dom元素作为数据发送到ajax请求,我想您只想发送它的值。
$.ajax({
type: "POST",
url: "traces_form_handler.cgi",
data: { email: email.value },//Check here in your code
success: function(){
alert("success!");
}
});
此属性导致问题
url: "traces_form_handler.cgi",
我在我的浏览器FF 10.0.2 上测试了它
On Error控制台错误为:错误:未捕获的异常:[exception…"无法转换JavaScript参数"nsresult:"0x80570009(NS_Error_XPC_BAD_convert_JS)::line 7601"data:no]
Solution: url:"some_valid_url_.php"
您可以使用表单提交事件,它;s更好的
HTML
<form id="myForm" 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>
JS
$(function() {
$("#myForm").on('submit', function(e){
e.preventDefault();
var email=$("#emailaddress");
var filter = /^w+@[a-zA-Z_]+?.[a-zA-Z]{2,3}$/;
if (!filter.test(email.value)) {
$('#invalidmail').show();
var t=setTimeout(function(){
$('#invalidmail').fadeOut("slow");},2000);
email.focus;
return false;
}
else
{
$.ajax({
type: "POST",
url: "my_server-page.php",
data: email.val(),
success: function(data){
alert("success!");
}
});
}
});
});