我有一个将数据发布到aspMail文件进行传递的表单(在当前格式下工作正常),但是希望在不必重定向到另一个页面的情况下发送表单数据。看起来像Ajax是继续进行的方式,但我在设置工作时遇到了问题。
以下是我改变html的方式:
补充:
$('#myForm').submit(function() {
$.ajax({
data: $(this).serialize(),
type: $(this).attr('post'),
url: $(this).attr('aspSend.asp'),
success: function(response) {
$('#created').html(response)
}
});
});
更改了表单标记:
<form name="myForm" action"aspSend.asp">
为:
<form name="myForm">
但现在电子邮件还没到!有什么建议吗?
答案 0 :(得分:0)
首先,我建议您使用Firebug来确切了解当您点击提交时发生了什么(实际上是在发帖吗?POST中有什么内容?响应是什么?)。
除此之外,还有一些想法:
我不确定您的attr标签是否可以获取帖子信息(也许它们有效,但我没有看到它们看起来像那样)。我会这样做你的帖子:
$('#myForm').submit(function() {
dataString = $("#myForm").serialize();
$.ajax({
type: "POST",
url: "aspSend.asp",
data: dataString,
dataType: "json",
success: function(data) {
if(data.status == "invalid"){
$("#created").html("<div>Error</div>");
} else {
$("#created").html("<div>Success</div>");
}
}
});
return false;
});
答案 1 :(得分:0)
您确定使用form-html的代码段是否正确?你jQuery寻找一个id为myForm的元素。但是你的表单似乎没有和id属性。
因此要么将id添加到表单中,要么尝试替换此行
$('#myForm').submit(function() {
这一个
$('form[name="myForm"]').submit(function() {
在ajax调用之后添加return false;
语句
$.ajax({...});
return false;