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.
>
>
>
>