Re: Allow xf:setfocus with no @control to set the focus to the event target

I thought the point of the ID magic was exactly so that you didn't have to 
think about it.
It just does intelligently what is most likely what the form author meant.

Does it really make sense to try to focus the event target?  What if a 
sequence of actions is grouped together and invoked from multiple 
locations using dispatch?

It seems an odd thing to see <setfocus/> without any indication of what 
the focus is being set to.

-1 from me.

John M. Boyer, Ph.D.
Senior Technical Staff Member
Lotus Forms Architect and Researcher
Chair, W3C Forms Working Group
Workplace, Portal and Collaboration Software
IBM Victoria Software Lab
E-Mail: boyerj@ca.ibm.com 

Blog: http://www.ibm.com/developerworks/blogs/page/JohnBoyer
Blog RSS feed: 
http://www.ibm.com/developerworks/blogs/rss/JohnBoyer?flavor=rssdw





From:
Ulrich Nicolas Lissé <unl@dreamlab.net>
To:
Mark Birbeck <mark.birbeck@webbackplane.com>
Cc:
public-forms <public-forms@w3.org>
Date:
08/12/2008 01:04 PM
Subject:
Re: Allow xf:setfocus with no @control to set the focus to the event 
target




Mark,

+1 from me. Makes it easy to set focus within repeats without needing to
understand id magic.

Regards,
Uli.

Mark Birbeck wrote:
> Hello all,
> 
> I was just looking something up in the spec, and noticed that if
> @control is omitted from the use of xf:setfocus then nothing happens.
> 
> It occurred to me that omitting @control and defaulting to the event
> target might actually be a useful pattern.
> 
> This example is a little contrived, because I've only just thought of
> the whole thing, but bear with me....
> 
> Ordinarily, setting focus on a control when it is invalid could be
> done like this:
> 
>   <xf:input id="me" ref="x">
>     <xf:label>X:</xf:label>
>     <xf:setfocus control="me" ev:event="xforms-invalid" />
>   </xf:input>
> 
> But that requires naming the control with an @id, and then ensuring
> that the @control value and the control name are in sync. An easier
> and more maintainable way would be:
> 
>   <xf:input ref="x">
>     <xf:label>X:</xf:label>
>     <xf:setfocus ev:event="xforms-invalid" />
>   </xf:input>
> 
> If people don't like simply omitting @control, an alternative would be:
> 
>   <xf:input ref="x">
>     <xf:label>X:</xf:label>
>     <xf:setfocus control="" ev:event="xforms-invalid" />
>   </xf:input>
> 
> Regards,
> 
> Mark
> 

-- 
Ulrich Nicolas Lissé

Received on Tuesday, 12 August 2008 21:03:11 UTC