2013-08-27 73 views
0

從我的角度來看,沒有類似的問題真正解決這個問題。清除ajaxed表單的內容

我有一個表單,註冊的用戶。我用.post來處理ajaxing。下面是代碼:

$('#register_user_form').submit(function(){ 
    $.post 
    (
     $(this).attr('action'), 
     $(this).serialize(), 
     function(data){ 
     console.log(data); 
     $('#alert_box2').html(data); 
     }, 
     "json" 
    ); 
    return false; 
    }); 

我知道我能得到通過,如果我返回假前加$('#input_field_id').val(' ');。但我必須爲每個輸入字段執行此操作。有沒有更高效的方法?也許在所有字段中添加相同的類並清除類的值?我有一種感覺,儘管那會被認爲是「不好的代碼」。

回答

5

你不能重置表單嗎?

this.reset(); 
return false; 
+0

+1,但我更喜歡這種方法 –

+0

+1如果他在表單上完全擦除之後,這是一個更好的方法。 – MLeFevre

+0

這是當天的勝利者。 '$('input')。val('')'工作,但它清除了我的提交按鈕的值,從而使它成爲一個空白按鈕。 – JDillon522

3

什麼剛:

$('input').val(''); 

此外,有什麼錯將一個類名給每個你想清楚的元素。

+1

您應該使用'$('#register_user_form input').val('');'以防萬一同一頁面上有更多表單。 –

+0

這工作,但它也清除了提交按鈕的內容,從而使其成爲一個空白按鈕。 'this.reset();'更簡單,容易處理。雖然 – JDillon522

0

猜測你的HTML,但你可以做這樣的事情

$('#register_user_form :input').each(function() { 
    $(this).val(''); 
}) 
0

你可以爲你想清楚,做這一切的輸入字段指明瞭共同的類名...

$('classname').val(''); 

或使用

location.reload(); 
0

試試這個刷新。它只會根據您提交的特定表單清除輸入值,因此如果這是問題,則不會清除整個文檔。

$('#register_user_form').submit(function(){ 
    var ref = $(this); 
    $.post 
    (
     $(this).attr('action'), 
     $(this).serialize(), 
     function(data){ 
     console.log(data); 
     $('#alert_box2').html(data); 
     ref.children('input').each(function(){ 
      $(this).val(''); 
     }); 
     }, 
     "json" 
    ); 
    return false; 
    });