[Seaside] FormElement focus after an update

Lukas Renggli renggli at gmail.com
Wed Oct 3 14:44:07 UTC 2007


>     it's me searching wrongly or there is no javascript to query which
> element has focus in a form?

I don't think that's easily possible. Maybe CSS3 will help in a couple of years.

>     We want some input text #change to update some component but after the
> update the focus remains on it. Well in fact even better will be that the
> focus remains in the different input text that had caused the #change to
> trigger.
>
>     I've tried to emulate this by making the updater like this:
>     [:html|
>         html updater
>             id: self id;
>             evalScripts: true;

That's not necessary anymore. This is the default nowadays ;-)

>             callback:[:focusId| lastFocusId := focusId]
>             value: (html formElement
>                 id: (self at: aSymbol) inputElementId; id);
>             callback:[:v | (self at: aSymbol) model setValue: v]
>             value: (html formElement
>                         id: (self at: aSymbol) inputElementId;
>                         value);

I don't get this lines. What are they supposed to do?

>             callback:[:h| self renderInnerContentOn: h.
>             h script: (h formElement id: lastFocusId; focus)];
>             yourself
>     ]
>
>     but this does not work for some reason I dont get yet
>
>     Did anyone managed to recover focus state in a similar scenario? any
> idea on how to do it?

You can track the focus using JavaScript and onFocus/onBlur events on
all the required elements.

Lukas

-- 
Lukas Renggli
http://www.lukas-renggli.ch


More information about the Seaside mailing list