Forum: Ruby on Rails Validation - set focus

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Srikanth J. (Guest)
on 2009-03-03 06:18
hi,
Is there any way to set focus in a particular field, after validation in
rails??
or we have to use only javascript.

For example.,
validates_presence_of :username
(assume there is no username given)
after validation, how can i set focus in that particular username
textbox.

is there any way in rails or should i use javascript.
Thanks.

--------
my ror blog
http://www.srikanthjeeva.blogspot.com
Priya B. (Guest)
on 2009-03-03 08:39

No idea in ruby, but you can use JS for this..
Srikanth J. (Guest)
on 2009-03-03 09:41
ya i can do it with JS,
any way in rails??

--------
my ror blog
http://www.srikanthjeeva.blogspot.com
(Guest)
on 2009-03-03 10:38
(Received via mailing list)
On 3 Mar., 08:41, Srikanth J. <removed_email_address@domain.invalid>
wrote:
> ya i can do it with JS,
> any way in rails??

You can approach this by making Rails generate some JavaScript for
you. I've put together a little example: http://pastie.org/405697 Call
the method somewhere in your view and the method _should_ make some
JavaScript to focus on the first field in your form that has errors.
Keep in mind that it's untested so if it doesn't work you might need
to fix an error or two, or maybe ask for help here.

--
Cheers,
David K.
http://twitter.com/rubyguy
(Guest)
on 2009-03-03 11:08
(Received via mailing list)
On 3 Mar., 08:57, "removed_email_address@domain.invalid" 
<removed_email_address@domain.invalid> wrote:
> > ya i can do it with JS,
> > any way in rails??
>
> You can approach this by making Rails generate some JavaScript for
> you.

I've revised the example a bit. This works perfectly for me. Feel free
to try it out: http://pastie.org/405733

--
Cheers,
David K.
http://twitter.com/rubyguy
(Guest)
on 2009-03-03 11:22
(Received via mailing list)
On 3 Mar., 10:07, "removed_email_address@domain.invalid" 
<removed_email_address@domain.invalid> wrote:

> I've revised the example a bit. This works perfectly for me. Feel free
> to try it out:http://pastie.org/405733

I need to mention that in the latest example (http://pastie.org/
405733) I'm also overriding the #error_messages_for method, so now you
can actully focus on the first field that has errors automatically.
The only thing you need to change is your application layout. Put:

<%= yield :head %>

... just before </head>. And then of course add the two methods to
your application helper file. Hope it helps... :)

--
Cheers,
David K.
http://twitter.com/rubyguy
Srikanth J. (Guest)
on 2009-03-03 12:45
really thanks man....
This topic is locked and can not be replied to.