Sanjiv Singh schrieb:
> No. I think it would have to be handled by the calling javascript
> code. Although I dont find any onfailure or a similar property in the
> api here http://malsup.com/jquery/form/#api :(
> Any idea on what would be the best way to handle errors here?

I looked into this some more. If you set "target", then in fact you have
no way to make a case distinction for errors, the result is always put
into the target element. But if instead of "target", you can set
"dataType" to e.g. "json" and "success" to a js_callback function, .e.g

my_ajax_form = ActiveForm(id="myAjaxForm",
    action="do_search", fields=CommentFields(),
    dataType = 'json', success = js_callback(
        "function (data) $('#' + data.target).html(data.output)"))

Now you could implement the controller like this:

@expose('json')
@validate(my_ajax_form)
def do_search(self, **kw):
    if tmpl_context.form_errors:
        target = 'my_ajax_form'
        output = re.sub('<form [^>]*>|</form>', '',
            Markup(my_ajax_form(kw)))
    else:
        target = 'output'
        output = '<p>Received data: %s</p>' % kw
    return dict(target=target,output=output)

In case of a validation error, this will redisplay the form with the
error messages, otherwise show the result.

I also noticed that besides tw.jquery.AjaxForm, there is a
twAjaxTools.AjaxTableForm widget which seems to include some support for
validation as well as flash and redirect. Maybe we should add
documentation for that as well? Strangely, the ajax_form.js file from
that package is also in tw.jquery. I wonder how it got there because it
has nothing to with jquery and is not used by tw.jquery at all?

-- Christoph

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"TurboGears Trunk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/turbogears-trunk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to