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: <Nick_Van_den_Bleeken@inventivegroup.com>
Date: Fri, 8 Aug 2008 15:29:55 +0200
To: "Mark Birbeck" <mark.birbeck@webbackplane.com>
Cc: public-forms <public-forms@w3.org>,public-forms-request@w3.org
Message-ID: <OFF3939CD1.EDC156A9-ONC125749F.00496DD5-C125749F.004A26A6@inventivegroup.com>
Good suggestion Mark, I personally would prefer omitting the attribute if 
you want to set the focus of the element that is the event target. 

The only down side with  this approach is that you no longer know which 
control would get the focus when looking at the markup.You could also for 
example attache the setfocus handler to the body of your html document. 
Then the focus will be set to a control if it gets invalid (there are some 
problems here when multiple controls get invalid in the same RRR, but that 
is another issue). But I'm not sure that this is a problem, you can also 
look at it as a feature.

Regards, 


Nick Van den Bleeken  -  Research & Development Manager
Inventive Designers
Phone: +32 - 3 - 8210170
Fax: +32 - 3 - 8210171
Email: Nick_Van_den_Bleeken@inventivegroup.com

public-forms-request@w3.org wrote on 08/08/2008 01:58:23 PM:

> 
> 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
> 
> -- 
> Mark Birbeck, webBackplane
> 
> mark.birbeck@webBackplane.com
> 
> http://webBackplane.com/mark-birbeck
> 
> webBackplane is a trading name of Backplane Ltd. (company number
> 05972288, registered office: 2nd Floor, 69/85 Tabernacle Street,
> London, EC2A 4RR)
> 
> 
> -- 
> This message has been scanned for viruses and
> dangerous content by MailScanner, and is
> believed to be clean.
> --
> 
> 

Inventive Designers' Email Disclaimer:   http://www.inventivedesigners.com/email-disclaimer =
-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
--
Received on Friday, 8 August 2008 13:30:50 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 1 October 2013 22:06:48 UTC