Ajax表单提交重置的意外标识符

时间:2017-06-20 13:09:11

标签: jquery ajax forms

无法理解在Ajax提交后如何实现表单重置。我尝试在this.reset();函数后调用success,但我仍然得到:

form-submit.js:11 Uncaught SyntaxError: Unexpected identifier

它可以工作,但是我错过了什么/没有正确地做了什么让我一直给这个错误?

如果这是转贴,请指导我正确的问题,几天后我还没有找到答案来解决我的问题。谢谢。

$( "form" ).on( "submit", function( event ) {
   event.preventDefault();
   console.log( $( this ).serialize() );
   $.ajax({
      type: "POST",
      url: 'https://mysite.somewebaddress.com',
      data: $( this ).serialize(),
      success: function() {
          alert('Mail Sent');
      }
   });
   $( "form" )[0].reset();
   //this.reset();
});

2 个答案:

答案 0 :(得分:1)

在成功回调中,this将引用Ajax请求本身。 此外,如果您尝试在Ajax块之后(外部)重置表单,则表单将在您提交后立即重置。

相反,尝试创建一个具有不同名称的变量,并添加complete回调(在Ajax请求完成后触发,无论成功/失败。

可能是这样的:

$("form").on("submit", function( event ) {
  event.preventDefault();
  console.log( $( this ).serialize() );
  var my_form = this;
  $.ajax({
     type: "POST",
     url: 'https://mysite.somewebaddress.com',
     data: $( this ).serialize(),
     success: function() {
         alert('Mail Sent');
         // my_form.reset() // or reset on success?
     },
     complete: function() {
        my_form.reset() // reset after submit
     }
  });
});

答案 1 :(得分:0)

$('#form').reset();

在回复后使用