发送asapMail而不使用ajax重新加载页面

时间:2009-11-26 14:28:33

标签: jquery ajax

我有一个将数据发布到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">

但现在电子邮件还没到!有什么建议吗?

2 个答案:

答案 0 :(得分:0)

首先,我建议您使用Firebug来确切了解当您点击提交时发生了什么(实际上是在发帖吗?POST中有什么内容?响应是什么?)。

除此之外,还有一些想法:

  1. 确保表单的ID为myForm,因为#myForm引用元素的ID,而不是元素的名称(所以将id ='myForm'添加到teh form标签中)
  2. 我不确定您的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;