Validation - set focus


#1

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


#2

No idea in ruby, but you can use JS for this…


#3

ya i can do it with JS,
any way in rails??


my ror blog
http://www.srikanthjeeva.blogspot.com


#4

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


#5

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 . And then of course add the two methods to
your application helper file. Hope it helps… :slight_smile:


Cheers,
David K.
http://twitter.com/rubyguy


#6

really thanks man…


#7

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