On Thursday, March 2, 2017 at 5:26:38 AM UTC-8, Anthony wrote:
>
> For an SQLFORM(), things are a little trickier, because the **attributes 
>> applies to the whole FORM object, and can't be directed to the input field. 
>>  So I tried using 
>> form.elements(input, _id=table_field, replace=lambda i: i[0:-2] + 
>> "autofocus" + i[-1])
>>
>> but i is a gluon.html.INPUT object and not sliceable (the slices become 
>> empty strings); there is also a ticket for trying to concatenate a string 
>> to a list, just to keep me confused.  Do I need to use javascript to set 
>> the focus?
>>
>
> You don't need to replace the input -- just update it:
>
> form.element(...)['_autofocus'] = True
>
> But if it is a SQLFORM, a better approach is probably to change the widget 
> associated with the DAL Field:
>
> db.mytable.myfield.widget = lambda f, v: SQLFORM.widgets.string.widget(f, 
> v, _autofocus=True)
>
> If you always want autofocus set for that field, you can do the above 
> within the DAL table definition.
>
> Anthony
>

Thanks, these all work.   The table def is probably what I'll stick with.

I haven't had to touch widgets much, and like many an unlearned feature 
they seemed mysterious or even spooky.  Perhaps I'll get a little more 
comfortable with them now.  One thing that I'm seeing is if my  validator 
returns a fail, the text box will resize smaller, which isn't a serious 
issue for me.

/dps "cue Addams Family theme"


-- 
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 [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to