This conditional custom HTML seems unnecessary -- why can't you just set 
the default value of the field conditionally in the controller?

Field('primary_email_choice', ..., default='Home' if [condition] else 
'Work')

Anthony

On Sunday, November 27, 2011 11:52:21 PM UTC-5, Constantine Vasil wrote:
>
> Basically I reverse engineered the HTML generated from web2py and
> came with the following solution:
> In SQLFORM.factory I have this definition:
> Field('*primary_email_choice*', widget=SQLFORM.widgets.radio.widget, 
> requires=IS_IN_SET({'Work' : 'Work', '*Home*' : 'Home'})),
>
> So in the HTML id="*primary_email_choiceHome*"  is a combination of 
> *primary_email_choice* and one of the values in the set: *Home.*
> So I manually composed to HTML to have more control. I have the 
> value in primary_email which determines if the radio check box is checked 
> or not dynamically when the HTML is rendered. It is much more cleared that 
> way and I have a full control on the design:
>
>                                 {{ if fields['primary_email'] == "Home": 
> }}                                    
>                                     <input type="radio" 
> name="primary_email_choice" id="*primary_email_choiceHome*" value="Home" 
> checked="yes"/>
>                                 {{ else: }}                    
>                                     <input type="radio" 
> name="primary_email_choice" id="primary_email_choiceHome" value="Home" />
>                                 {{ pass }}
>                                 <label for="primary_email_choiceHome">{{ 
> if fields['primary_email'] == "Home": }}Primary Email: Home{{ else: 
> }}Choose Email Home as Primary Email{{ pass }}</label>
>
> Radio check-boxes are under-described in the book and I believe this 
> solution will help others to do the same.
>
>
>
>

Reply via email to