2013-02-20 51 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