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.

