That's interesting and more clean but in my case I don't use the widget as 
I would like to add to the input an input-group-addon for having for 
example for this field 'daily-distance' the unit at the end.

                <div class='form-group'>
                    {{=LABEL(T(db.events.daily_distance.label), 
_for='daily_distance')}}:
                    <div class="input-group">
                        {{if form_event.vars.daily_distance:}}
                            {{daily_distance_value = 
form_event.vars.daily_distance}}
                        {{else:}}
                            {{daily_distance_value = '5'}}
                        {{pass}}
                        {{=INPUT(_type='text', _name='daily_distance', 
_id='daily_distance', _class='form-control', _value=daily_distance_value, 
_onchange='update_data()')}}
                        <span class='input-group-addon'>
                             {{=SPAN(T(db.events.daily_distance.comment), 
_class='comment')}}
                        </span>
                    </div>
                {{if form_event.errors.daily_distance:}}
                    <div class="error_wrapper">
                        <div id="daily_distance__error" class="error" style=
"display: inline-block;">
                            {{=form_event.errors.daily_distance}}
                        </div>
                    </div>
                {{pass}}
                </div>

It works also with the widget:
                <div class="form-group">
                    {{=LABEL(T(db.events.daily_distance.label), 
_for='title')}}:
                    <div class="input-group">
                        {{=form_event.custom.widget.daily_distance}}
                        <span class='input-group-addon'>
                             {{=SPAN(T(db.events.daily_distance.comment), 
_class='comment')}}
                        </span>
                    </div>
                </div>

But in case of errors the error_wrapper class is added inside the 
input-group, so it increase the input-group-addon height:
 

<https://lh3.googleusercontent.com/-35T7RIUtkSE/V79PydbSM4I/AAAAAAAAGc0/FBPaTWU52usVz9sCLky0-4ycbtZGBeq_QCLcB/s1600/Schermata%2B2016-08-25%2Balle%2B22.03.30.png>

It's not nice and I don't know how I can say to web2py to add the 
error-wrapper after the input-group. Do you know that?

Il giorno giovedì 25 agosto 2016 14:07:23 UTC+2, Mirek Zvolský ha scritto:
>
> I hope you can do your solution in controller.
>
> You can set form.vars
>   AFTER form= definition
>   and BEFORE form.validate() (or before form.process() which contains 
> .validate() call)
>
> But you can set the value later too.
> Here you have initial name Jan, and substitute name after failed 
> validation Martin:
>
> def test_name():
>  form = SQLFORM(db.auth_user)
>  form.vars.first_name = 'Jan'
>  if form.process().accepted:
>    redirect(URL(...))
>  elif form.errors:
>    form.custom.widget.first_name.attributes['_value'] = 'Martin'
>  return dict(form=form)
>
>
>
>
>
> Dne středa 24. srpna 2016 19:19:25 UTC+2 Gael Princivalle napsal(a):
>>
>> Thank you Mirek for that.
>> Like that it works:
>> {{=INPUT(_type='text', _name='book_title', _id='book_title', 
>> _value='form.vars.book_title')}}
>>
>> But web2py don't load the default value set in the table (even before it 
>> was like that but I've add it with _value.
>>
>> For having a complete solution I must do something like that:
>>     {{if form.vars.book_title:}}
>>         {{book_title_value = form.vars.book_title}}
>>     {{else:}}
>>         {{book_title_value = 'My book title'}}
>>     {{pass}}
>>     {{=INPUT(_type='text', _name='book_title', _id='book_title', _value=
>> book_title_value)}}
>>
>> Il giorno mercoledì 24 agosto 2016 17:20:20 UTC+2, Mirek Zvolský ha 
>> scritto:
>>>
>>> form.vars.book_title ? (book, chapter 7)
>>>
>>>
>>>
>>>
>>> Dne úterý 23. srpna 2016 13:47:34 UTC+2 Gael Princivalle napsal(a):
>>>>
>>>> Hello.
>>>>
>>>> In a custom form when the user submit the form with errors I need to 
>>>> reload all user inputs and set the input value.
>>>>
>>>> For example here is an input:
>>>> {{=INPUT(_type='text', _name='book_title', _id='book_title')}}
>>>>
>>>> How can I do that ?
>>>> As there is available on form errors form.errors.book_title is there 
>>>> something like form.value.book_title ?
>>>>
>>>> Thanks.
>>>>
>>>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to