You need 

name = 'q%d' % (q_num)
SELECT(....,value=request.vars.name or '0',...)

Only SQLFORM remembers the state. primitive tags like SELECT, INPUT, 
TEXTAREA that do not know state. you must pass state.


On Friday, 11 May 2012 15:52:21 UTC-5, Neil wrote:
>
> I'm creating a form with drop down boxes like this:
>
> SELECT(*options, _name='q%d' % (q_num), requires=IS_IN_SET(['1', '2', '3', 
> '4', '5'], error_message="Oops, looks like you missed this one.")
>
> When  options looks like this:
>
> options = ['0', '1', '2', '3', '4', '5']
>
> everything is fine. In particular, if there is a form validation error, 
> the form remembers which options was selected for each item. 
>
> However, if  options looks like this:
>
> options = [OPTION('', _value='0'),
>            OPTION('Never have the thought', _value='1'),
>            OPTION('Rarely have the thought ', _value='2'),
>            OPTION('Sometimes have the thought', _value='3'),
>            OPTION('Often have the thought', _value='4'),
>            OPTION('Always have the thought', _value='5')]
>
> The form initially displays correctly, but when there is a validation 
> error, it forgets which option was previously selected. In particular, it 
> always says selected="0".
>
> Is this a bug, or am I doing something wrong? Is there a workaround?
>
> Neil
>
>

Reply via email to