AJAX / JS联系表 - 隐藏img

时间:2014-04-22 23:46:24

标签: javascript php jquery ajax forms

(需要一些帮助,因为我是AJAX / JS的新手。)

目前正在尝试为网站创建AJAX / JS联系表单。该表单工作,并能够发送电子邮件没问题。但是,我在按下“submit”按钮时尝试使用以下工作流程。

1)联系表格向上滑动

2)出现Loading.gif

3)表格信息通过电子邮件发送

4)Loading.gif消失

5)在Loading.gif地方显示成功消息

我有1-3和5工作,但不能让#4发生。

以下是我在submit_form.js中的代码:

if(hasError == false) {
$('#sendEmail').slideUp("fast",function() {
    $(this).after('<img src="loading.gif" alt="Loading" id="loading" />');
});

        $.post("sendmail.php",
            { emailFrom: emailFromVal, subject: subjectVal, message: messageVal },
                function(data){
                    $("#sendEmail").slideUp("normal", function() {                 

                        $("#sendEmail").before('<h1>Success! Your email was sent.</h1>');                                           
                    });
                }
             );
    }
        $(this).hide();
    return false;

任何人都可以帮助新手吗?

3 个答案:

答案 0 :(得分:0)

对于初学者我们没有这个功能

$('#sendEmail').slideUp("fast",function() {
    $(this).after('<img id="loading" src="loading.gif" alt="Loading"/>');
});

我们可以做到:

$('#sendEmail').slideUp("fast").after('<img id="loading" src="loading.gif" alt="Loading"/>');

关于我们$_POST的过度使用,我们会隐藏表单并加载图片。

$.post("sendmail.php",{ emailFrom: emailFromVal, subject: subjectVal, message: messageVal },
     success:function(){
         $("#sendEmail").slideUp();
         $("#loading").hide();
     }
 });

答案 1 :(得分:-1)

function(data){
    $("#sendEmail").slideUp("normal", function() {                 
        $("#sendEmail").before('<h1>Success! Your email was sent.</h1>');
    });
}

回调,你真正需要slideUp的是图像,而不是表格,因为它已经被隐藏了。

改变你的

$("#sendEmail").slideUp

$("#loading").slideUp

答案 2 :(得分:-1)

我还没有测试过它,但我想如果你改变了

$("#sendEmail").slideUp("normal", function() {                 

      $("#sendEmail").before('<h1>Success! Your email was sent.</h1>');                                           
});

$("#sendEmail").slideUp("normal", function() {                 
    $("#loading").hide();
    $("#sendEmail").before('<h1>Success! Your email was sent.</h1>');                                           
});

它应该有用