Re: [Wicket-user] Input focus
Thanks, guys. I think I was over-thinking this. I've decided to do this with pure Javascript included on every page, just giving focus to the first non-disabled input element. Igor's comment about metadata made me realize I was already tagging invalid fields with "invalid" in the class attribute, so I keyed off that to give those fields priority. I also use the CSS class name "nofocus" to avoid always giving focus to a search input at the top of each page. I've attached the JS if anyone's interested. It won't give focus to a select or textarea, but I don't need that just now. jk On Tue, April 3, 2007 2:04 am, Peter Thomas said: > You may already know the quick un-generic way to do this - but for example > this is what I have on a login page where I set focus to the password > field > in case the user-id field is already filled in. > > getBodyContainer().addOnLoadModifier(new AbstractReadOnlyModel() { > public Object getObject() { > String markupId; > if(loginName.getConvertedInput() == null) { > markupId = loginName.getMarkupId(); > } else { > markupId = password.getMarkupId(); > } > return "document.getElementById('" + markupId + "').focus()"; > } > }, password); > > > On 4/3/07, Igor Vaynberg <[EMAIL PROTECTED]> wrote: >> >> you can set some metadata into these components. have your page/form >> subclass implement iheaderresponse, traverse the hierararchy in >> renderhead >> and set focus to the first component with the right metadata through the >> header response that is passed in. >> >> sounds like a mouthful, but should be pretty simple to implement. >> >> -igor >> >> >> On 4/2/07, John Krasnay < [EMAIL PROTECTED]> wrote: >> > >> > Hi folks, >> > >> > I'm new to Wicket and I'm wondering if there's a "Wicket way" to have >> > input focus set to the first form component on the page. I could >> always >> > code up some >> > Javascript to do this but it would be nice if I could flag certain >> form >> > components as "wanting focus", then have the page set the focus to the >> > first of these. Ideally, if any form components had failed validation, >> > the >> > page would ignore the "wanting focus" flag and give focus to the first >> > invalid field. >> > >> > Any ideas? >> > >> > jk >> > >> > >> > >> > >> > - >> > Take Surveys. Earn Cash. Influence the Future of IT >> > Join SourceForge.net's Techsay panel and you'll get the chance to >> share >> > your >> > opinions on IT & business topics through brief surveys-and earn cash >> > >> > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV >> > ___ >> > Wicket-user mailing list >> > Wicket-user@lists.sourceforge.net >> > https://lists.sourceforge.net/lists/listinfo/wicket-user >> > >> >> >> - >> Take Surveys. Earn Cash. Influence the Future of IT >> Join SourceForge.net's Techsay panel and you'll get the chance to share >> your >> opinions on IT & business topics through brief surveys-and earn cash >> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV >> ___ >> Wicket-user mailing list >> Wicket-user@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/wicket-user >> >> > - > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share > your > opinions on IT & business topics through brief surveys-and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV___ > Wicket-user mailing list > Wicket-user@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wicket-user > focus.js Description: JavaScript source - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] Input focus
You may already know the quick un-generic way to do this - but for example this is what I have on a login page where I set focus to the password field in case the user-id field is already filled in. getBodyContainer().addOnLoadModifier(new AbstractReadOnlyModel() { public Object getObject() { String markupId; if(loginName.getConvertedInput() == null) { markupId = loginName.getMarkupId(); } else { markupId = password.getMarkupId(); } return "document.getElementById('" + markupId + "').focus()"; } }, password); On 4/3/07, Igor Vaynberg <[EMAIL PROTECTED]> wrote: you can set some metadata into these components. have your page/form subclass implement iheaderresponse, traverse the hierararchy in renderhead and set focus to the first component with the right metadata through the header response that is passed in. sounds like a mouthful, but should be pretty simple to implement. -igor On 4/2/07, John Krasnay < [EMAIL PROTECTED]> wrote: > > Hi folks, > > I'm new to Wicket and I'm wondering if there's a "Wicket way" to have > input focus set to the first form component on the page. I could always > code up some > Javascript to do this but it would be nice if I could flag certain form > components as "wanting focus", then have the page set the focus to the > first of these. Ideally, if any form components had failed validation, > the > page would ignore the "wanting focus" flag and give focus to the first > invalid field. > > Any ideas? > > jk > > > > > - > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share > your > opinions on IT & business topics through brief surveys-and earn cash > > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > ___ > Wicket-user mailing list > Wicket-user@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wicket-user > - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user
Re: [Wicket-user] Input focus
you can set some metadata into these components. have your page/form subclass implement iheaderresponse, traverse the hierararchy in renderhead and set focus to the first component with the right metadata through the header response that is passed in. sounds like a mouthful, but should be pretty simple to implement. -igor On 4/2/07, John Krasnay <[EMAIL PROTECTED]> wrote: Hi folks, I'm new to Wicket and I'm wondering if there's a "Wicket way" to have input focus set to the first form component on the page. I could always code up some Javascript to do this but it would be nice if I could flag certain form components as "wanting focus", then have the page set the focus to the first of these. Ideally, if any form components had failed validation, the page would ignore the "wanting focus" flag and give focus to the first invalid field. Any ideas? jk - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV ___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user - Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV___ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user