成功发布

时间:2017-03-14 09:38:01

标签: javascript jquery

我有一个脚本通过php-ajax发送我的表单。它确实返回成功,但是当它成功时我需要它做的是清除所有表单数据并关闭div并加载另一个。我已经尝试了许多不同的方法来清除形式并关闭div,但它们似乎完全阻止了它。要关闭的div的id是'5box'我需要添加这些的工作脚本是:

$(document).ready(function() {
   $('#btn-finish').on('click', function() {

        // Add text 'loading...' right after clicking on the submit button. 
        $('.output_message').text('Processing...'); 

        var form = $(this);
        $.ajax({
            url: form.attr('action'),
            method: form.attr('method'),
            data: form.serialize(),
            success: function(result){
                if (result == 'success'){
                    $('.output_message').text('Message Sent!');

                } else {
                    $('.output_message').text('Error Sending email!');
                }
            }
        });

        // Prevent default submission of the form after clicking on the submit button. 
        return false;

    });
});

任何想法都将不胜感激

3 个答案:

答案 0 :(得分:1)

要清除表单,您可以调用基础元素的reset()方法。我不确定你的意思是'关闭div',但你可以致电hide()让它消失。试试这个:

success: function(result) {
  if (result == 'success') {
    $('.output_message').text('Message Sent!');
    form[0].reset();
    $('#5box').hide();
  } else {
    $('.output_message').text('Error Sending email!');
  }
}

另请注意,从AJAX调用返回JSON会更好。然后,您可以使用布尔标志来显示请求的状态。

更新

  

<button name ='send' value="Send" type='submit' class='btn btn-primary'>Finish</button>

鉴于这是您的按钮的代码还有另一个问题 - 您不会阻止提交表单,因此AJAX请求被取消。为此,请挂钩表单的submit事件,而不是单击按钮。从那里,您可以致电e.preventDefault()以停止提交表单。试试这个:

<script>
  $(function() {
    $('form').on('submit', function(e) { 
      e.preventDefault();
      $('.output_message').text('Processing...'); 

      var form = $(this);
      $.ajax({
        url: form.attr('action'),
        method: form.attr('method'),
        data: form.serialize(),
        success: function(result) {
          if (result == 'success') {
            $('.output_message').text('Message Sent!');
            form[0].reset();
            $('#5box').hide();
          } else {
            $('.output_message').text('Error Sending email!');
          }
        }
      });
    });
  });
</script>

注意我上面使用了通用的'form'选择器。您可以根据需要将其更改为表单上的类或id选择器。

答案 1 :(得分:0)

用于清除表单字段

$("input[type=text], textarea").val("");

欢呼声

答案 2 :(得分:0)

您也可以使用触发器

$(&#39;#form_id&#39)触发。(&#34;重置&#34);