2010-04-17 9 views
5

Mögliche Duplizieren eingereichten Form:
Resetting a multi-stage form with jQueryDeaktivieren Sie das Formular einmal

Sobald das Formular abgeschickt, Antwort von einer anderen Seite an #GameStorySys gedruckt. Aber die Werte, die in das Formular eingegeben werden, bleiben dort. Ist es möglich, dass die Formularwerte nach dem Übermitteln des Formulars verschwinden (das Formular sollte jedoch immer noch angezeigt werden)?

$("[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); 
       } 
     }); 
}); 

Antwort

3

Sie können es manuell löschen, zum Beispiel:

$("[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

Sehr schön mit der zusätzliche removeAttr-Aufruf nach val. – David

+0

$ ("# GameStoryForm"). Get (0) .reset(); Sollte es tun. Ich habe nicht verstanden, wie genau die manuelle Version funktionieren würde. Sobald das Formular abgeschickt wurde, müsste der Benutzer auf die Schaltfläche Zurücksetzen klicken. – zurna

+0

@zurna - von "manuell" Ich meine nur programmgesteuert das Löschen der Eingaben, anstatt die '.reset()' -Funktionalität des Formulars zu verwenden. Es ist nur ein bisschen expliziter, so dass Sie genau sehen können, was vor sich geht ... oder lassen Sie alle Elemente, die Sie nicht zurücksetzen möchten, nicht löschen. –

0

ich es mit Javascript tun würde:

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

Wenn Sie die Reset in Antwortfunktion für AJAX-Abfrage durchführen, es wird nicht gemacht, bevor die Anfrage zurückkommt. Wenn Sie das Formular im Ereignishandler onsubmit() zurücksetzen (wie hier vorgeschlagen), wird es entweder überhaupt nicht zurückgesetzt (da Sie die AJAX-Anfrage im click() - Handler senden, nicht im submit() - Handler).

Was Sie tun müssen, ist die Reset durchführen, nachdem die AJAX-Request Ausgabe - das heißt, nach .ajax $() aufrufen - aber nicht in seiner Rückruffunktion, wenn Anforderung kehrt genannt:

$("[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(); 
}); 
Verwandte Themen