2009-12-08 12 views
7

Estoy intentando borrar un formulario ajax después de que se haya agregado un elemento a la base de datos, sin embargo, OnComplete y OnSuccess AjaxOptions se llaman antes de enviar el formulario. ¿Cómo puedo obtenerlo para que el formulario se envíe primero y se llame al OnComplete?MVC Ajax.Beginform OnComplete/OnSuccess activado antes de la llamada del controlador

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

que exige

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

Sin embargo, el cuadro de texto DisplayName se borra antes de la balue se envía al controlador de la forma se somete a. Hay alguna forma de evitar esto.

Respuesta

13

OnComplete = "ClearForm()" debe llamarse sin los paréntesis, es decir, OnComplete = "ClearForm". No puedo decir con certeza que solucionaría tu problema.

+0

Sospecho que es esto. El código que establece la devolución de llamada es llamar a ClearForm() y usar el resultado para asignar al manejador de devolución de llamada en lugar de simplemente asignar la referencia de función a ClearForm como el manejador de devolución de llamada. – tvanfosson

+0

Magnífico, ovaciones chicos, siempre es algo tonto lo que te detiene. :) – Israfel

Cuestiones relacionadas