AJAX提交表单,但它不会停止,但它会将数据插入数据库

时间:2016-12-16 12:02:46

标签: javascript php jquery ajax

我正在处理留言板,如果javascript被禁用,则必须验证输入表单。如果启用了javascript,则必须让AJAX停止刷新并submit表单。

我有一个由PHP验证的html表单。现在我正在尝试添加jqueryajax来停止页面刷新。 我在提交按钮上添加了一个加载gif和非活动输入字段。但是当我添加$ .ajax时,gif不会停止旋转,字段也不会变为活动状态。刷新页面后,我可以看到输入数据已添加到数据库中。

我使用ajax时很新,也许你可以帮我找到解决问题的方法。

这是我的代码:

$(document).ready(function(){
  $("#submit").click(function(e){
    e.preventDefault();

    // getting input values by id
    var fullname = $("#fullname").val();
    var message = $("#message").val();

    // array for input values
    var data = { fullname : fullname,
      message : message };

      //disabled all the text fields
      $('.text').attr('disabled','true'); 
      //show the loading sign
      $('.loading').show();

      // AJAX Code To Submit Form.
      $.ajax({
        type: "POST",
        url: "validation.php",
        //dataType : 'json',
        data: data,
        cache: false,
        success: function(data){
          alert('success');
        }
      }).done(function(result) {
        if (result == "")
        form.submit();
        else
        alert(result);
      }).fail(function() {
        alert('ERROR');
      });
    });
  });

当我使用dataType : 'json',时,我获得了成功和输入值警报,我收到错误警告。

我会感激任何帮助。

1 个答案:

答案 0 :(得分:1)

也许一旦你显示.gif图像,你就不会再次隐藏相同的.gif图像,尽管你的ajax已经完成或停止或失败(无论如何)。

  

因此,在ajax成功添加以下两行以隐藏.gif并启用文本字段。

//enabled all the text fields
$('.text').prop("disabled", false);

//hide the loading sign
$('.loading').hide();

整个代码看起来像这样,

// AJAX Code To Submit Form.
$.ajax({
   type: "POST",
   url: "validation.php",
   data: data,
   cache: false,
   success: function(data){
      //enabled all the text fields
     $('.text').prop("disabled", false);
     //hidethe loading sign
     $('.loading').hide();
     alert('success');
  }
  });