2010-04-17 34 views
5

Olası Çoğalt: formu gönderdikten
Resetting a multi-stage form with jQueryFormu temizle kez gönderilen formu

, başka bir sayfadan cevap #GameStorySys için basılır. Ancak forma girilen değerler hala burada kalıyor. Form gönderildikten sonra form değerlerinin ortadan kaldırılması mümkün mü (ancak form hala kalmalıdır)?

$("[name='GameStoryForm']").click(function() { 
     $.ajax({ 
      type: "POST", 
       data: $("#GameStoryForm").serialize(), 
       url: "content/commentary/index.cs.asp?Process=EditLiveCommentaryStory&CommentaryID=<%=Request.QueryString("CommentaryID")%>", 
       success: function(output) { 
       $('#GameStorySys').html(output); 
      }, 
       error: function(output) { 
       $('#GameStorySys').html(output); 
       } 
     }); 
}); 

cevap

3

Örneğin, el ile temizleyebilirsiniz:

$("[name='GameStoryForm']").click(function() { 
    $.ajax({ 
    type: "POST", 
    data: $("#GameStoryForm").serialize(), 
    url: "content/commentary/index.cs.asp?Process=EditLiveCommentaryStory&CommentaryID=<%=Request.QueryString("CommentaryID")%>", 
    success: function(output) { 
     $('#GameStorySys').html(output); 
     $("#GameStoryForm").get(0).reset(); 
     //or manually: 
     // $("#GameStoryForm :input").not(':button, :submit, :reset, :hidden') 
     //       .val('').removeAttr('checked selected'); 
    }, 
    error: function(output) { 
     $('#GameStorySys').html(output); 
    } 
    }); 
}); 
+0

Çok güzel val'den sonra ek removeAttr çağrısı. – David

+0

$ ("# GameStoryForm"). (0) .reset(); yapmalı. Tam manuel versiyonun nasıl çalışacağını anlamadım. Form gönderildikten sonra, kullanıcının sıfırlama düğmesine basması gerekecek mi? – zurna

+0

@zurna - "manual" ile Sadece formun '.reset()' işlevini kullanmak yerine girdileri program aracılığıyla temizlemeyi kastediyorum. Sadece biraz daha açık, tam olarak neler olduğunu görebiliyorsunuz ya da sıfırlamak istemediğiniz herhangi bir öğeyi temizlemiyorsunuz. –

0

Ben javascript ile bunu yapacağını:

<script> 
document.getElementById(yourFormId).onsubmit = new Function(){this.reset();} 
</script> 
0

AJAX sorgusu için tepki fonksiyonunda sıfırlama işlemi, bu istek iade edilmeden önce yapılmayacaktır. Formu onsubmit() olay işleyicisinde (burada önerildiği gibi) sıfırlarsanız, o zaman ya hiç yeniden yüklenmeyecektir (AJAX isteğini click() işleyicisine göndermediğiniz için() işleyici() işleyicisi). yani $ .ajax() çağrıldıktan sonra - -

Ne yapmak gerek AJAX isteği veren sonra sıfırlama işlemi ancak onun geri arama işlevi denilen değilken istek döner: ile

$("[name='GameStoryForm']").click(function() { 
    $.ajax({ 
    type: "POST", 
    data: $("#GameStoryForm").serialize(), 
    url: "content/commentary/index.cs.asp?Process=EditLiveCommentaryStory&CommentaryID=<%=Request.QueryString("CommentaryID")%>", 
    success: function(output) { 
     $('#GameStorySys').html(output); 
    }, 
    error: function(output) { 
     $('#GameStorySys').html(output); 
    } 
    }); 

    $("#GameStoryForm").get(0).reset(); 
});