Sorry, I forgot this doesn't work with form.custom.begin, which is an XML 
object rather than an HTML helper (because it includes only the opening 
form tag). Instead, you could do this:

{{=XML(form.custom.begin.replace('>', ' class="myclass">'))}}

but it's probably more straightforward to just manually code the HTML:

<form action="" enctype="multipart/form-data" method="post" class="myclass">

Anthony

On Wednesday, December 19, 2012 6:38:42 PM UTC-5, Bhaskar Ramachandran 
wrote:
>
> Hi Anthony,
>
>   I tried that earlier also but that code didn't seem to work. I say so 
> because my html page still has that login form on the left side of the 
> navigation bar and looking at the source code, i see the following:
>  <form  action="" enctype="multipart/form-data" method="post">
> No class is added.
> If I replace the custom form with a hard coded form with class name in the 
> <form class= ...." then i am able to get the form in the right way.
> So, it looks like somehow those statements to set class name are 
> overridden by something else. I have these statements after the custom 
> begin and custom end block in my view file so this is the last thing that 
> is done to the form before it is rendered. 
>
> I tried both your statements below and both of them didn't do anything. If 
> you could also teach me how i can go and debug this situation, ( by looking 
> at the form object in real time if possible to see how it gets modified 
> during web2py execution on that page) it will help me in the long run... 
>
> Thanks! 
> -Bhaskar
>
>
> On Wednesday, December 19, 2012 11:09:48 AM UTC-6, Anthony wrote:
>>
>> form['_class'] = 'myclass'
>>
>> or
>>
>> form.update(_class='myclass')
>>
>> A form is an HTML helper object, just like any other HTML helper, so the 
>> usual rules apply: 
>> http://web2py.com/books/default/chapter/29/05#HTML-helpers
>>
>> Anthony
>>
>> On Tuesday, December 18, 2012 11:33:32 PM UTC-5, Bhaskar Ramachandran 
>> wrote:
>>>
>>> As listed in the "view" code below, i am trying to customize the form 
>>> returned by auth.login(). Note that i have in my controller "return 
>>> dict(form=auth.login()). Then in the view code pasted below i am 
>>> customizing the login form.
>>> It seems to work fine except that i am unable to assign a class name to 
>>> this form. So my question is " How to set the class name for a form object 
>>> ?. There are posts in the mailing list to specify class name for elements 
>>> within the form object but i couldn't find one that explains how the class 
>>> name for the form object itself can be assinged. 
>>> Please let me know if my question needs more explanation. Thank you.
>>>               {{
>>>                     if not auth.is_logged_in() :
>>>                               if not 'register' in auth.settings.
>>> actions_disabled:
>>>                                    form.add_button(T('Register'),URL(
>>> args='register'),_class='btn')
>>>                                pass
>>>                                    if not 'request_reset_password' inauth
>>> .settings.actions_disabled:
>>>                                      form.add_button(T('Lost Password'),
>>> URL(args='request_reset_password'),_class='btn')
>>>                             pass 
>>>              }}
>>>         
>>>                     {{=form.custom.begin}}
>>>                        <a href=
>>> "/myscienceapp/default/register?_next=/default/index" style="margin-right: 
>>> 10px">Sign Up</a>
>>>                           <div class="input-append">
>>>                              <input id="user_username" 
>>> class="input-small" style="margin-right: 5px; border-radius: 5px 5px 5px 
>>> 5px;" type="text" name="email" placeholder="Email"/>
>>>                         <input id="user_password" class="input-small"style
>>> ="margin-right: 2px; border-radius: 5px 5px 5px 5px;" type="password"name
>>> ="password" placeholder="Password"/>
>>>                               <input class="btn btn-primary" 
>>> style="margin-right: 
>>> 5px; margin-bottom: 0px;border-radius: 5px 5px 5px 5px;" size="5" type=
>>> "submit" name="commit" value="Go!" />
>>>                                <input id="user_remember_me" 
>>> style="margin-right: 
>>> 5px; margin-bottom: 16px;" type="checkbox" name="remember" value="1" />
>>>                               <label class="string optional" 
>>> style="margin-right: 
>>> 10px;" for="user_remember_me">Remember me</label>
>>>                           <a href="/users/sign_up" style="margin-right: 
>>> 1px">Forgot?</a> 
>>>                          </div>
>>>                          {{=form.custom.end}}
>>>        <!--Using the command below,i am trying to set the class name for 
>>> the form.I was unable to do it both directly as well as using the parent() 
>>> method.. -->
>>>          {{form.element('div').parent['_class']='navbar-form pull-right 
>>> form-inline'}}
>>>         
>>>                 {{pass}}
>>>   
>>>
>>>

-- 



Reply via email to