# Validation - set focus

**URL:** <https://www.ruby-forum.com/t/validation-set-focus/161859>\
**Category:** Rails\
**Created:** [March 3, 2009, 5:18am UTC](https://www.ruby-forum.com/t/validation-set-focus/161859 "2009-03-03T05:18:22Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![srikanth\_j](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/a5b964/32.png) [@srikanth\_j](https://www.ruby-forum.com/u/srikanth_j)\
**Post date:** [March 3, 2009, 5:18am UTC](https://www.ruby-forum.com/t/validation-set-focus/161859/1 "2009-03-03T05:18:22Z")

</div>

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

> **[Srikanth Jeeva's technical Blog](http://www.srikanthjeeva.com/)**
>
> my blog is abt wht i have learnt technically, mostly in Ruby on Rails, Javascript, node.js 
> hope this share a little bit of info & adds a bit stuff., 
> Thanks.

---

<div class="post-metadata">

**Author:** ![srikanth\_j](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/a5b964/32.png) [@srikanth\_j](https://www.ruby-forum.com/u/srikanth_j)\
**Post date:** [March 3, 2009, 7:39am UTC](https://www.ruby-forum.com/t/validation-set-focus/161859/2 "2009-03-03T07:39:48Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![srikanth\_j](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/a5b964/32.png) [@srikanth\_j](https://www.ruby-forum.com/u/srikanth_j)\
**Post date:** [March 3, 2009, 8:41am UTC](https://www.ruby-forum.com/t/validation-set-focus/161859/3 "2009-03-03T08:41:42Z")

</div>

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

* * *

my ror blog

> **[Srikanth Jeeva's technical Blog](http://www.srikanthjeeva.com/)**
>
> my blog is abt wht i have learnt technically, mostly in Ruby on Rails, Javascript, node.js 
> hope this share a little bit of info & adds a bit stuff., 
> Thanks.

---

<div class="post-metadata">

**Author:** ![srikanth\_j](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/a5b964/32.png) [@srikanth\_j](https://www.ruby-forum.com/u/srikanth_j)\
**Post date:** [March 3, 2009, 10:08am UTC](https://www.ruby-forum.com/t/validation-set-focus/161859/4 "2009-03-03T10:08:55Z")

</div>

On 3 Mar., 08:57, “removed\_email\_address@domain.invalid” [removed\_email\_address@domain.invalid](mailto: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](http://pastie.org/405733)

–  
Cheers,  
David K.  
[http://twitter.com/rubyguy](http://twitter.com/rubyguy)

---

<div class="post-metadata">

**Author:** ![srikanth\_j](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/a5b964/32.png) [@srikanth\_j](https://www.ruby-forum.com/u/srikanth_j)\
**Post date:** [March 3, 2009, 10:22am UTC](https://www.ruby-forum.com/t/validation-set-focus/161859/5 "2009-03-03T10:22:26Z")

</div>

On 3 Mar., 10:07, “removed\_email\_address@domain.invalid” [removed\_email\_address@domain.invalid](mailto: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](http://pastie.org/405733)

I need to mention that in the latest example ([http://pastie.org/](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… 🙂

–  
Cheers,  
David K.  
[http://twitter.com/rubyguy](http://twitter.com/rubyguy)

---

<div class="post-metadata">

**Author:** ![srikanth\_j](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/a5b964/32.png) [@srikanth\_j](https://www.ruby-forum.com/u/srikanth_j)\
**Post date:** [March 3, 2009, 11:45am UTC](https://www.ruby-forum.com/t/validation-set-focus/161859/6 "2009-03-03T11:45:40Z")

</div>

really thanks man…

---

<div class="post-metadata">

**Author:** ![srikanth\_j](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/a5b964/32.png) [@srikanth\_j](https://www.ruby-forum.com/u/srikanth_j)\
**Post date:** [March 3, 2009, 9:38am UTC](https://www.ruby-forum.com/t/validation-set-focus/161859/7 "2009-03-03T09:38:22Z")

</div>

On 3 Mar., 08:41, Srikanth J. [removed\_email\_address@domain.invalid](mailto: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](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](http://twitter.com/rubyguy)
