现在我的网站打开了,用户可以选择他们想要订购的商品。当他们想要提交订单时,我只想发送一封电子邮件,但电子邮件还没有通过,我的页面才重新开始。
的JavaScript / AJAX:
<script type="text/javascript">
$(document).ready(
function() {
$('#wholesaleOrderForm').submit(
function() {
if (validateForm()) {
$.post("wholesale_form.php",
$('#wholesaleOrderForm').serialize(),
function(response) {
alert('response = ' + response);
if (response == "success") {
$('#ajax-msg').html("Thanks for subscribing!");
$('#ajax-msg').style.color = "green";
$('#ajax-msg').hide(5000);
} else {
$('#ajax-msg').html("Sorry, there is some error. Please try again.");
$('#ajax-msg').style.color = "red";
$('#ajax-msg').hide(5000);
}
}
);
// prevent postback
return false;
} else {
return false;
}
}
);
}
);
</script>
PHP代码:
<?php
$to = "lazar108@hotmail.com";
$subject = 'hello';
$message = "Hello!!";
$headers = 'From: DoNotReply@COMPANY_EMAIL.com';
mail($to, $subject, $message, $headers);
?>
答案 0 :(得分:2)
您需要使用event.preventDefault();
禁用表单的默认操作答案 1 :(得分:2)
继Julaine的建议之后,改变这两行:
$('#wholesaleOrderForm').submit(
function() {
到此:
$('#wholesaleOrderForm').submit(
function(e) {
e.preventDefault();
//rest of your code
说明:
通过导航到另一个页面提交表单(通常在表单标签的action="newpage.php"
属性中指定。在页面导航之前,您的AJAX代码没有时间完成。*请注意,如果{{1}没有指定属性,页面只刷新 - 对于AJAX也是同样的问题。
如果不起作用,还需要进一步的建议:
(1)分而治之。大大减少你的代码,直到它工作,然后逐步添加其余的,修复你找到它们时的错误。
(2)将ajax降至最低:
action=
<强> wholesale_form.php 强>
$('#wholesaleOrderForm').submit(function(e) {
e.preventDefault();
$.post("wholesale_form.php", function(response) {
alert(response);
});
});