【问题标题】:AJAX/JS contact form - hide imgAJAX/JS 联系表格 - 隐藏 img
【发布时间】:2014-04-22 23:46:24
【问题描述】:

(需要一些帮助,因为我是 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;

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

【问题讨论】:

    标签: javascript php jquery ajax forms


    【解决方案1】:

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

    $('#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();
         }
     });
    

    【讨论】:

      【解决方案2】:

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

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

      改变你的

      $("#sendEmail").slideUp
      

      $("#loading").slideUp
      

      【讨论】:

      • 你不是说.slideUp()
      【解决方案3】:

      我没有测试过任何一个,但如果你改变我会想

      $("#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>');                                           
      });
      

      它应该可以工作

      【讨论】:

      • 如果你想要动画,你也可以使用 slideUp 而不是 hide
      猜你喜欢
      • 1970-01-01
      • 2016-06-14
      • 1970-01-01
      • 2017-12-19
      • 2013-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-02
      相关资源
      最近更新 更多