### Navigation

- index
- modules |
- next |
- previous |
- TurboGears 2.1.5 documentation »
- Search:
- Extended Table of Contents »
- Tips and Recipes »
- ToscaWidgets Cookbook »

# Creating Ajax-Enabled Forms Using Prototype

## Installation

    easy_install tw.prototype

## Usage

    from tg import expose, flash, redirect, TGController
    import pylons

    from tw.forms.fields import *
    from tw.prototype.activeform import ActiveForm
    from twtools.frameworks.tg2.activeform import ActiveFormResponseHandler

    from formencode.validators import Int, String

    children = [TextField('non_empty_string', validator=String(not_empty=True)),
               TextField('integer', validator=Int()),
               ]
    activeForm = ActiveForm(id='myActiveForm',
                            action='submit',
                            children=children,
                            clear_on_success=True,
                            on_success="console.log('hello!')")

    class ExampleController(TGController):

       @expose('tw.prototype.examples.tg2.templates.index')
       def form(self, **kw):
           pylons.c.widget = activeForm
           return dict()

       def submitSuccess(self, **kw):
           #this is where your database call goes
           print kw

       activeFormHandler = ActiveFormResponseHandler(activeForm, submitSuccess)
       submit            = activeFormHandler.ajax_submit

Todo

Difficulty: Medium. This is nothing but code snippets. Add text describing what the code does.