tags:

views:

748

answers:

1

Hi, I'm trying to clear an ajax form after an item has been added to the database however the OnComplete and OnSuccess AjaxOptions get called before the form is submitted. How can I get it so the form is submitted first and the the OnComplete is called.

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

which calls

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

However the DisplayName textbox is cleared before the balue is sent to the controller the form submits to. Is there a way around this.

+2  A: 

OnComplete = "ClearForm()" should be called without the parentheses, i.e. OnComplete = "ClearForm". I can't say for sure that it would fix your issue though.

Michael Gattuso
I suspect this is it. The code that sets up the callback is calling ClearForm() and using the result to assign to the callback handler instead of simply assigning the function reference to ClearForm as the callback handler.
tvanfosson
Superb, cheers guys, it's always something silly that holds you up. :)
Israfel