2009-12-08 3 views
7

Я пытаюсь очистить форму ajax после того, как элемент был добавлен в базу данных, однако OnComplete и OnSuccess AjaxOptions вызываются перед отправкой формы. Как я могу получить его, чтобы форма была отправлена ​​первой и вызывается OnComplete.MVC Ajax.Beginform OnComplete/OnSuccess уволен перед вызовом контроллера

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

который называет

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

Однако текстовое поле Выводимое очищается перед balue отправляется в контроллер форма подчиняется. Есть ли способ обойти это.

ответ

13

OnComplete = "ClearForm()" следует вызывать без круглых скобок, то есть OnComplete = "ClearForm". Я не могу сказать точно, что это исправит вашу проблему.

+0

Я подозреваю, что это он. Код, который устанавливает обратный вызов, вызывает ClearForm() и использует результат для назначения обработчику обратного вызова вместо простого назначения ссылки функции ClearForm в качестве обработчика обратного вызова. – tvanfosson

+0

Превосходно, подбадривает ребята, это всегда что-то глупое, что подводит вас. :) – Israfel

Смежные вопросы