MobileBlur

Artifact [98a4f6927b]
Login

Artifact [98a4f6927b]

Artifact 98a4f6927b0c2541eb3ac5c11daa2237d792bcff:


<?xml version="1.0" encoding="ascii"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <title>web2py.gluon.html.FORM</title>
  <link rel="stylesheet" href="epydoc.css" type="text/css" />
  <script type="text/javascript" src="epydoc.js"></script>
</head>

<body bgcolor="white" text="black" link="blue" vlink="#204080"
      alink="#204080">
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">
  <!-- Home link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="web2py.gluon-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Tree link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Project homepage -->
      <th class="navbar" align="right" width="100%">
        <table border="0" cellpadding="0" cellspacing="0">
          <tr><th class="navbar" align="center"
            ><a class="navbar" target="_top" href="http://www.web2py.com">web2py Web Framework</a></th>
          </tr></table></th>
  </tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0">
  <tr valign="top">
    <td width="100%">
      <span class="breadcrumbs">
        Package&nbsp;web2py ::
        <a href="web2py.gluon-module.html">Package&nbsp;gluon</a> ::
        <a href="web2py.gluon.html-module.html">Module&nbsp;html</a> ::
        Class&nbsp;FORM
      </span>
    </td>
    <td>
      <table cellpadding="0" cellspacing="0">
        <!-- hide/show private -->
        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
        <tr><td align="right"><span class="options"
            >[<a href="frames.html" target="_top">frames</a
            >]&nbsp;|&nbsp;<a href="web2py.gluon.html.FORM-class.html"
            target="_top">no&nbsp;frames</a>]</span></td></tr>
      </table>
    </td>
  </tr>
</table>
<!-- ==================== CLASS DESCRIPTION ==================== -->
<h1 class="epydoc">Class FORM</h1><span class="codelink"><a href="web2py.gluon.html-pysrc.html#FORM">source&nbsp;code</a></span><br /><br />
<pre class="base-tree">
  object --+        
           |        
<a href="web2py.gluon.html.XmlComponent-class.html">XmlComponent</a> --+    
               |    
             <a href="web2py.gluon.html.DIV-class.html">DIV</a> --+
                   |
                  <strong class="uidshort">FORM</strong>
</pre>

<dl><dt>Known Subclasses:</dt>
<dd>
    <a href="web2py.gluon.sqlhtml.SQLFORM-class.html">sqlhtml.SQLFORM</a>
</dd></dl>

<hr />
example:
<pre class="literalblock">
   &gt;&gt;&gt; from validators import IS_NOT_EMPTY
   &gt;&gt;&gt; form=FORM(INPUT(_name=&quot;test&quot;, requires=IS_NOT_EMPTY()))
   &gt;&gt;&gt; form.xml()
   '&lt;form action=&quot;&quot; enctype=&quot;multipart/form-data&quot; method=&quot;post&quot;&gt;&lt;input name=&quot;test&quot; type=&quot;text&quot; /&gt;&lt;/form&gt;'
</pre>
  <p>a FORM is container for INPUT, TEXTAREA, SELECT and other helpers</p>
  form has one important method:
<pre class="literalblock">
   form.accepts(request.vars, session)
</pre>
  if form is accepted (and all validators pass) form.vars contains the 
  accepted vars, otherwise form.errors contains the errors. in case of 
  errors the form is modified to present the errors to the user.<br /><br />

<!-- ==================== INSTANCE METHODS ==================== -->
<a name="section-InstanceMethods"></a>
<table class="summary" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Instance Methods</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-InstanceMethods"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="web2py.gluon.html.FORM-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">*components</span>,
        <span class="summary-sig-arg">**attributes</span>)</span><br />
      :param *components: any components that should be nested in this 
      element :param **attributes: any attributes you want to give to this 
      element</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="web2py.gluon.html-pysrc.html#FORM.__init__">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr class="private">
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="web2py.gluon.html.FORM-class.html#_postprocessing" class="summary-sig-name">_postprocessing</a>(<span class="summary-sig-arg">self</span>)</span><br />
      Handling of attributes (normally the ones not prefixed with 
      '_').</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="web2py.gluon.html-pysrc.html#FORM._postprocessing">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="accepts"></a><span class="summary-sig-name">accepts</span>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">vars</span>,
        <span class="summary-sig-arg">session</span>=<span class="summary-sig-default">1</span>,
        <span class="summary-sig-arg">formname</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">default</code><code class="variable-quote">'</code></span>,
        <span class="summary-sig-arg">keepvalues</span>=<span class="summary-sig-default">True</span>,
        <span class="summary-sig-arg">onvalidation</span>=<span class="summary-sig-default">1</span>,
        <span class="summary-sig-arg">hideerror</span>=<span class="summary-sig-default">True</span>)</span></td>
          <td align="right" valign="top">
            <span class="codelink"><a href="web2py.gluon.html-pysrc.html#FORM.accepts">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="hidden_fields"></a><span class="summary-sig-name">hidden_fields</span>(<span class="summary-sig-arg">self</span>)</span></td>
          <td align="right" valign="top">
            <span class="codelink"><a href="web2py.gluon.html-pysrc.html#FORM.hidden_fields">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="web2py.gluon.html.FORM-class.html#process" class="summary-sig-name">process</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">values</span>=<span class="summary-sig-default">1</span>,
        <span class="summary-sig-arg">session</span>=<span class="summary-sig-default">1</span>,
        <span class="summary-sig-arg">**args</span>)</span><br />
      Perform the .validate() method but returns the form

Usage in controllers:
# directly on return
def action():
    #some code here
    return dict(form=FORM(...).process(...))

You can use it with FORM, SQLFORM or FORM based plugins

Examples:
#response.flash messages
def action():
    form = SQLFORM(db.table).process(message_onsuccess='Sucess!')
    retutn dict(form=form)

# callback function
# callback receives True or False as first arg, and a list of args.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="web2py.gluon.html-pysrc.html#FORM.process">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="web2py.gluon.html.FORM-class.html#validate" class="summary-sig-name">validate</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">values</span>=<span class="summary-sig-default">1</span>,
        <span class="summary-sig-arg">session</span>=<span class="summary-sig-default">1</span>,
        <span class="summary-sig-arg">formname</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">default</code><code class="variable-quote">'</code></span>,
        <span class="summary-sig-arg">keepvalues</span>=<span class="summary-sig-default">True</span>,
        <span class="summary-sig-arg">onvalidation</span>=<span class="summary-sig-default">1</span>,
        <span class="summary-sig-arg">hideerror</span>=<span class="summary-sig-default">True</span>,
        <span class="summary-sig-arg">onsuccess</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">flash</code><code class="variable-quote">'</code></span>,
        <span class="summary-sig-arg">onfailure</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">flash</code><code class="variable-quote">'</code></span>,
        <span class="summary-sig-arg">message_onsuccess</span>=<span class="summary-sig-default">1</span>,
        <span class="summary-sig-arg">message_onfailure</span>=<span class="summary-sig-default">1</span>)</span><br />
      This function validates the form, 
you can use it instead of directly form.accepts.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="web2py.gluon.html-pysrc.html#FORM.validate">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="web2py.gluon.html.FORM-class.html#xml" class="summary-sig-name">xml</a>(<span class="summary-sig-arg">self</span>)</span><br />
      generates the xml for this component.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="web2py.gluon.html-pysrc.html#FORM.xml">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
  <tr>
    <td colspan="2" class="summary">
    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="web2py.gluon.html.DIV-class.html">DIV</a></code></b>:
      <code><a href="web2py.gluon.html.DIV-class.html#__delitem__">__delitem__</a></code>,
      <code><a href="web2py.gluon.html.DIV-class.html#__getitem__">__getitem__</a></code>,
      <code><a href="web2py.gluon.html.DIV-class.html#__len__">__len__</a></code>,
      <code><a href="web2py.gluon.html.DIV-class.html#__nonzero__">__nonzero__</a></code>,
      <code><a href="web2py.gluon.html.DIV-class.html#__setitem__">__setitem__</a></code>,
      <code><a href="web2py.gluon.html.DIV-class.html#__str__">__str__</a></code>,
      <code><a href="web2py.gluon.html.DIV-class.html#append">append</a></code>,
      <code><a href="web2py.gluon.html.DIV-class.html#element">element</a></code>,
      <code><a href="web2py.gluon.html.DIV-class.html#elements">elements</a></code>,
      <code><a href="web2py.gluon.html.DIV-class.html#flatten">flatten</a></code>,
      <code><a href="web2py.gluon.html.DIV-class.html#insert">insert</a></code>,
      <code><a href="web2py.gluon.html.DIV-class.html#sibling">sibling</a></code>,
      <code><a href="web2py.gluon.html.DIV-class.html#siblings">siblings</a></code>,
      <code><a href="web2py.gluon.html.DIV-class.html#update">update</a></code>
      </p>
    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="web2py.gluon.html.DIV-class.html">DIV</a></code></b> (private):
      <code><a href="web2py.gluon.html.DIV-class.html#_fixup">_fixup</a></code>,
      <code><a href="web2py.gluon.html.DIV-class.html#_setnode">_setnode</a></code>,
      <code><a href="web2py.gluon.html.DIV-class.html#_traverse">_traverse</a></code>,
      <code><a href="web2py.gluon.html.DIV-class.html#_validate">_validate</a></code>,
      <code><a href="web2py.gluon.html.DIV-class.html#_wrap_components">_wrap_components</a></code>,
      <code><a href="web2py.gluon.html.DIV-class.html#_xml">_xml</a></code>
      </p></div>
    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
      <code>__delattr__</code>,
      <code>__getattribute__</code>,
      <code>__hash__</code>,
      <code>__new__</code>,
      <code>__reduce__</code>,
      <code>__reduce_ex__</code>,
      <code>__repr__</code>,
      <code>__setattr__</code>
      </p>
    </td>
  </tr>
</table>
<!-- ==================== CLASS VARIABLES ==================== -->
<a name="section-ClassVariables"></a>
<table class="summary" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Class Variables</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-ClassVariables"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
        <a name="tag"></a><span class="summary-name">tag</span> = <code title="'form'"><code class="variable-quote">'</code><code class="variable-string">form</code><code class="variable-quote">'</code></code>
    </td>
  </tr>
  <tr>
    <td colspan="2" class="summary">
    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="web2py.gluon.html.DIV-class.html">DIV</a></code></b>:
      <code><a href="web2py.gluon.html.DIV-class.html#regex_attr">regex_attr</a></code>,
      <code><a href="web2py.gluon.html.DIV-class.html#regex_class">regex_class</a></code>,
      <code><a href="web2py.gluon.html.DIV-class.html#regex_id">regex_id</a></code>,
      <code><a href="web2py.gluon.html.DIV-class.html#regex_tag">regex_tag</a></code>
      </p>
    </td>
  </tr>
</table>
<!-- ==================== PROPERTIES ==================== -->
<a name="section-Properties"></a>
<table class="summary" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Properties</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-Properties"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
  <tr>
    <td colspan="2" class="summary">
    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
      <code>__class__</code>
      </p>
    </td>
  </tr>
</table>
<!-- ==================== METHOD DETAILS ==================== -->
<a name="section-MethodDetails"></a>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Method Details</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-MethodDetails"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
</table>
<a name="__init__"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">*components</span>,
        <span class="sig-arg">**attributes</span>)</span>
    <br /><em class="fname">(Constructor)</em>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="web2py.gluon.html-pysrc.html#FORM.__init__">source&nbsp;code</a></span>&nbsp;
    </td>
  </table>
  
  <p>:param *components: any components that should be nested in this 
  element :param **attributes: any attributes you want to give to this 
  element</p>
  :raises SyntaxError: when a stand alone tag receives components
  <dl class="fields">
    <dt>Overrides:
      <a href="web2py.gluon.html.DIV-class.html#__init__">DIV.__init__</a>
        <dd><em class="note">(inherited documentation)</em></dd>
    </dt>
  </dl>
</td></tr></table>
</div>
<a name="_postprocessing"></a>
<div class="private">
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">_postprocessing</span>(<span class="sig-arg">self</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="web2py.gluon.html-pysrc.html#FORM._postprocessing">source&nbsp;code</a></span>&nbsp;
    </td>
  </table>
  
  <p>Handling of attributes (normally the ones not prefixed with '_').</p>
  Nothing to postprocess yet. May be overridden by subclasses
  <dl class="fields">
    <dt>Overrides:
      <a href="web2py.gluon.html.DIV-class.html#_postprocessing">DIV._postprocessing</a>
        <dd><em class="note">(inherited documentation)</em></dd>
    </dt>
  </dl>
</td></tr></table>
</div>
<a name="process"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">process</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">values</span>=<span class="sig-default">1</span>,
        <span class="sig-arg">session</span>=<span class="sig-default">1</span>,
        <span class="sig-arg">**args</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="web2py.gluon.html-pysrc.html#FORM.process">source&nbsp;code</a></span>&nbsp;
    </td>
  </table>
  
  <pre class="literalblock">

Perform the .validate() method but returns the form

Usage in controllers:
# directly on return
def action():
    #some code here
    return dict(form=FORM(...).process(...))

You can use it with FORM, SQLFORM or FORM based plugins

Examples:
#response.flash messages
def action():
    form = SQLFORM(db.table).process(message_onsuccess='Sucess!')
    retutn dict(form=form)

# callback function
# callback receives True or False as first arg, and a list of args.
def my_callback(status, msg):
   response.flash = &quot;Success! &quot;+msg if status else &quot;Errors occured&quot;

# after argument can be 'flash' to response.flash messages
# or a function name to use as callback or None to do nothing.
def action():
    return dict(form=SQLFORM(db.table).process(onsuccess=my_callback)

</pre>
  <dl class="fields">
  </dl>
</td></tr></table>
</div>
<a name="validate"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">validate</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">values</span>=<span class="sig-default">1</span>,
        <span class="sig-arg">session</span>=<span class="sig-default">1</span>,
        <span class="sig-arg">formname</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string">default</code><code class="variable-quote">'</code></span>,
        <span class="sig-arg">keepvalues</span>=<span class="sig-default">True</span>,
        <span class="sig-arg">onvalidation</span>=<span class="sig-default">1</span>,
        <span class="sig-arg">hideerror</span>=<span class="sig-default">True</span>,
        <span class="sig-arg">onsuccess</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string">flash</code><code class="variable-quote">'</code></span>,
        <span class="sig-arg">onfailure</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string">flash</code><code class="variable-quote">'</code></span>,
        <span class="sig-arg">message_onsuccess</span>=<span class="sig-default">1</span>,
        <span class="sig-arg">message_onfailure</span>=<span class="sig-default">1</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="web2py.gluon.html-pysrc.html#FORM.validate">source&nbsp;code</a></span>&nbsp;
    </td>
  </table>
  
  <pre class="literalblock">

This function validates the form, 
you can use it instead of directly form.accepts.

Usage:
In controller

def action():
    form=FORM(INPUT(_name=&quot;test&quot;, requires=IS_NOT_EMPTY()))
    form.validate() #you can pass some args here - see below
    return dict(form=form)

This can receive a bunch of arguments        

onsuccess = 'flash' - will show message_onsuccess in response.flash
            None - will do nothing
            can be a function (lambda form: pass)
onfailure = 'flash' - will show message_onfailure in response.flash
            None - will do nothing
            can be a function (lambda form: pass)

values = values to test the validation - dictionary, response.vars, session or other - Default to (request.vars, session)
message_onsuccess
message_onfailure

</pre>
  <dl class="fields">
  </dl>
</td></tr></table>
</div>
<a name="xml"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">xml</span>(<span class="sig-arg">self</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="web2py.gluon.html-pysrc.html#FORM.xml">source&nbsp;code</a></span>&nbsp;
    </td>
  </table>
  
  generates the xml for this component.
  <dl class="fields">
    <dt>Overrides:
      <a href="web2py.gluon.html.DIV-class.html#xml">DIV.xml</a>
        <dd><em class="note">(inherited documentation)</em></dd>
    </dt>
  </dl>
</td></tr></table>
</div>
<br />
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">
  <!-- Home link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="web2py.gluon-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Tree link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Project homepage -->
      <th class="navbar" align="right" width="100%">
        <table border="0" cellpadding="0" cellspacing="0">
          <tr><th class="navbar" align="center"
            ><a class="navbar" target="_top" href="http://www.web2py.com">web2py Web Framework</a></th>
          </tr></table></th>
  </tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
  <tr>
    <td align="left" class="footer">
    Generated by Epydoc 3.0beta1 on Thu Aug  4 00:47:01 2011
    </td>
    <td align="right" class="footer">
      <a href="http://epydoc.sourceforge.net">http://epydoc.sourceforge.net</a>
    </td>
  </tr>
</table>

<script type="text/javascript">
  <!--
  // Private objects are initially displayed (because if
  // javascript is turned off then we want them to be
  // visible); but by default, we want to hide them.  So hide
  // them unless we have a cookie that says to show them.
  checkCookie()
  // -->
</script>
  
</body>
</html>