W3C home > Mailing lists > Public > public-forms@w3.org > August 2008

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

From: John Boyer <boyerj@ca.ibm.com>
Date: Tue, 12 Aug 2008 14:01:11 -0700
To: Ulrich Nicolas Lissť <unl@dreamlab.net>
Cc: Mark Birbeck <mark.birbeck@webbackplane.com>, public-forms <public-forms@w3.org>
Message-ID: <OF62695D7B.AB3FDB7A-ON882574A3.00732B6A-882574A3.0073774F@ca.ibm.com>
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: 

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


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


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

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:13:58 UTC