2009-12-08 13 views
7

Ich versuche ein Ajax-Formular zu löschen, nachdem ein Element zur Datenbank hinzugefügt wurde, aber OnComplete und OnSuccess AjaxOptions werden aufgerufen, bevor das Formular gesendet wird. Wie kann ich es bekommen so wird das Formular zuerst abgeschickt und der OnComplete wird aufgerufen.MVC Ajax.Beginform OnComplete/OnSuccess ausgelöst vor dem Controller-Aufruf

<% using (Ajax.BeginForm("AddTable", new AjaxOptions 
             { 
              UpdateTargetId = "tables", 
              InsertionMode = InsertionMode.InsertAfter, 
              OnComplete = "ClearForm()" 
             })) 
    {%> 

die

function ClearForm() { 
     $('#DisplayName').val(''); 
    } 

ruft jedoch die Display Textbox gelöscht wird, bevor die Balue an die Steuerung gesendet wird, die Form vorlegt. Gibt es einen Weg dahin?

Antwort

13

sollte ohne die Klammern aufgerufen werden, d. H. OnComplete = "ClearForm". Ich kann nicht mit Sicherheit sagen, dass es Ihr Problem beheben würde.

+0

Ich vermute, das ist es. Der Code, der den Rückruf einrichtet, ruft ClearForm() auf und verwendet das Ergebnis, um dem Callback-Handler zuzuweisen, anstatt einfach den Funktionsverweis auf ClearForm als Callback-Handler zuzuweisen. – tvanfosson

+0

Hervorragend, Leute, es ist immer etwas Dummes, das dich aufhält. :) – Israfel

Verwandte Themen