.done ajax给我一个错误

时间:2016-07-27 04:35:40

标签: javascript php jquery ajax

所以我正在创建一个使用ajax和PHP发送电子邮件的联系表单。

我似乎在运行此脚本时出错。

  

错误:未捕获的语法错误:意外的令牌。

使用chrome BTW。

我也有一个PHP文件,但我不认为这是相关的,我可以在需要时添加它。

    $(function() {
    var form = $('#ajax-contact');
    var formMessages = $('#form-messages');
    var formData = $(form).serialize();


    $(form).submit(function(event) {
        event.preventDefault();
    });

    $.ajax({
      type: 'POST',
      url: $(form).attr('action'),
      data: formData
    });

    .done(function(response) {
      $(formMessages).removeClass('error');
      $(formMessages).addClass('success');

      $(formMessages).text(response);

      $('#name').val('');
      $('#email').val('');
      $('#message').val('');
    })

    .fail(function(data) {
      $(formMessages).removeClass('success');
      $(formMessages).addClass('error');

      if (data.responseText !== '') {
          $(formMessages).text(data.responseText);
      } else {
          $(formMessages).text('Oops! An error occured and your message could not be sent.');
      }
    });
});

2 个答案:

答案 0 :(得分:0)

这种情况正在发生,因为您通过添加分号来终止ajax调用,然后调用.done()。正确的语法是:

$.ajax( "..." )
.done(function() 
{ 
    alert("success"); 
});

答案 1 :(得分:0)

在$ .ajax之后删除分号,我可以告诉你想要在提交时做一个ajax,但是ajax在提交事件之外,将代码放在提交事件中

  var form = $('#ajax-contact');
    var formMessages = $('#form-messages');
    $(form).submit(function(event) {
            event.preventDefault();
        var formData = $(form).serialize();
        $.ajax({
          type: 'POST',
          url: $(form).attr('action'),
          data: formData
        })

        .done(function(response) {
          $(formMessages).removeClass('error');
          $(formMessages).addClass('success');

          $(formMessages).text(response);

          $('#name').val('');
          $('#email').val('');
          $('#message').val('');
        })

        .fail(function(data) {
          $(formMessages).removeClass('success');
          $(formMessages).addClass('error');

          if (data.responseText !== '') {
              $(formMessages).text(data.responseText);
          } else {
              $(formMessages).text('Oops! An error occured and your message could not be sent.');
          }
        });