I do not understand the purpose of all this. Why not:

{{=form.custom.begin}}
{{#<!-- Add header here -->}}
{{=form.element['table']}}
{{#<!-- Add footer here -->}}
{{=DIV(form.custom.end[1] # hidden field}}
{{#<!-- Add submit/cancel buttons here - you may even not use the submit 
variable -->}}
{{=INPUT('extra button'}}
{{=form.custom.end[0] # </form>}}


Notice there is also a form.add_button(....) in trunk.

On Saturday, 5 May 2012 00:49:38 UTC-5, Cédric Mayer wrote:
>
> As I needed to build my own submit buttons, or add my own widgets, I use 
> the following function to split a SQLFORM:
> import re
>
> def expurgate_form(web2py_form):
>     '''
>     Deletes surrounding <form> tag, and submit row.
>     '''
>     regexp_opening_tag = re.compile("^<[^><]*>")
>     regexp_closing_tag = re.compile("<[^><]*>$")
>     form_xml = web2py_form.xml()
>     opening_tag = regexp_opening_tag.search(form_xml).group()
>     closing_tag = regexp_closing_tag.search(form_xml).group()
>     realform=TAG(form_xml)
>     table = realform.elements('table')[0]
>     hidden_elements = realform.elements("input[type=hidden]")
>     hidden_element = DIV(*hidden_elements)
>     hidden_element['_style'] = "display:none;"
>     todelete = table.elements("input[type=submit]")
>     submit = todelete[0]
>     todelete[0].parent[0]=''
>     return (table,hidden_element,XML(opening_tag),XML(closing_tag),submit)
>
>
> To use it in a view:
> {{(table,hidden_element,opening_tag,closing_tag,submit)=expurgate_form(
> form)}}
> {{=opening_tag}}
> {{#<!-- Add header here -->}}
> {{=table}}
> {{#<!-- Add footer here -->}}
>  {{=hidden_element}}
> {{#<!-- Add submit/cancel buttons here - you may even not use the submit 
> variable -->}}
>  {{=submit}}
>  {{=closing_tag}}
>
>
> I hope it will help :-)
>
>
> Le vendredi 4 mai 2012 08:30:23 UTC+2, Annet a écrit :
>>
>> I'd like to divide the default/user.html forms into a body and footer 
>> part, the body containing the fields the footer containing the cancel and 
>> submit button, something like this:
>>
>> <div class="form">
>>   <div class="form-header">
>>     <h3>Login with your Leonexus ID</h3>
>>   </div> <!-- /form-header -->
>>   <div class="form-body">
>>       <h5>Enter your username and password</h5>
>>
>>       the form fields here
>>
>>   </div> <!-- /form-body -->
>>   <div class="form-footer">
>>
>>       the form controls here
>>
>>   </div> <!-- /form-footer -->
>>  </div> <!-- /form -->
>>
>> Is there a way to split the form in these components?
>>
>>
>> Kind regards,
>>
>> Annet
>>
>

Reply via email to