2013-02-20 54 views
0

以下是处理我的形式阿贾克斯标记:如何在提交后清除ajax表单?

$.ajax({ 
    dataType: "json", 
    type: "get", 
    url: "ajax.php?action=add_driver", 
    data: $("#addDriver").serialize(), 

    beforeSend: function(){ 
     $('.error, .success, .notice').remove(); 
    }, 

    success: function(json){ 
     if (json['status']=='success') 
     { 
      alert(json['message']); 
      $("#addDriver").reset(); 
     }else{ 
      if(json['error']['my_variable']){ 
      $("input[name=my_variable]").after('<div class="error">'+json['error']['my_variable']+'</div>');  
      } 
      $("#addDriver").reset(); 
     } 
}); 

我想知道的是,我将如何清除表单,一旦它已经提交了什么?我厌倦了使用$("#addDriver").reset();,但它只是在不提交表单的情况下完全清除表单。任何帮助?

+0

我在这里有点困惑。你想清除表单,.reset()做到这一点,但..... ???什么?? – 2013-02-20 15:11:59

+1

如果'reset()'成功,它会在提交后执行。你期望发生什么不是? – Archer 2013-02-20 15:12:18

+0

我把你的代码格式化了一下,以突出你似乎在成功结束时缺少一个'}'的事实:'处理器 – 2013-02-20 15:26:48

回答

2

嗯,这不是how?的问题,在你的情况下,而是when?

$("#addDriver")[0].reset();应该就好了,只要你的表格是id,只要你在success()complete()回调函数中使用它。

+0

是'$(“#addDriver”).setup();'在正确的地方? – 2013-02-20 15:15:55

+0

@RobertMartens你可能想在你的提醒后把它放在下一行,以防你成功时只需重置表格 – vittore 2013-02-20 15:22:06

+0

好的,我编辑了你的代码以提高可读性。您已将复位置于正确的回调函数中,但只有当json ['status']不是'成功'时才会被激活。 – Krule 2013-02-20 15:22:53