=====更新再次====(如果有人关心!) 我之前发布的解决方案停止工作,无论出于何种原因。我在我的ajax请求中包含了一个beforeSend,并将我的js部分验证了我的表单。现在就像一个魅力!表单不提交与AJAX
$('#form').on('submit', function(e) {
e.preventDefault(); //prevents page refresh
$.ajax({
type: "post",
beforeSend: function(){ // check that form is complete
},
url: "client_config_send2.php",
data: $(this).serialize(),
success: function(data){
alert('Thank you'); hide_request();window.location = "#top";
}
});
});
编辑
见我的回答如下,使用2 .preventDefault!
我已阅读了许多页面/这个例子,但由于某种原因,我无法让它在“我的”形式上工作。 我只是试图提交我的表单而不刷新页面或打开新的页面/选项卡作为确认消息。 形式:
<form id="form" name="Configurator" method="post" action="">
.... //Client configures his product, display an image if they choose, and request a quote.
<button id="submit_button" type="submit" name="Submit" >Request</button>
</form>
的client_config_send2.php的作品,它只是拉了一堆从形式(配置,联系信息)的参数,并把它变成一个电子邮件。在我尝试整合ajax之前,这部分工作正常。
的JS:
$('form').on('submit', function(e) {
e.preventDefault();
if(!validateForm(this)){
return true;
}
$.ajax({
type: "post",
url: "client_config_send2.php",
data: $(this).serialize(),
done: function(data){
alert("Thank you, we will get back to you shortly");
}
});
})
</script>
的validateForm()函数也适用,它会检查配置是否有效,如果电子邮件/联络信息齐全等 在这一点上,validateForm作品:如果信息丢失,弹出警报。但是,当validateForm()返回true时,表单不提交,没有任何反应。
我试过了成功而不是做了,在JS中返回false而不是true,还有很多我在网上找到的东西,但是我迷路了。以前从未使用过AJAX,因此我对语言的微妙之处并不是100%自信!
在此先感谢!
网址是否正确?试试这个,在浏览器中输入url并点击enter。这会返回什么吗? – Christos 2015-02-07 20:27:45
打开你的控制台,点击网络选项卡,然后提交表单,你会看到请求发生。响应的状态代码是什么? – Charlie 2015-02-08 00:07:00