Forum: Ruby on Rails How to set the focus to a specified field in a form

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.
Patrick D. (Guest)
on 2008-12-05 03:51
(Received via mailing list)
This is probably a general HTML question, but I'll ask it here anyway.

Is there any way to set the focus to a specific field in a form
generated in
a view?  The little I've found on so far suggests that I need to add
some
javascript to do this.  I can go figure out how to do that, but it seems
like it should be the sort of thing that could already be built into
Rails.

--wpd
Thorsten M. (Guest)
on 2008-12-05 11:51
(Received via mailing list)
this one requires prototype (for textfield with id "searchtext"):

<script language="JavaScript">
  $("searchtext").focus();
</script>

without prototype it would be something like this:
document.formname.fieldname.focus();
Chris B. (Guest)
on 2008-12-05 13:28
(Received via mailing list)
On Dec 5, 10:50 pm, Thorsten Müller <removed_email_address@domain.invalid> 
wrote:
> this one requires prototype (for textfield with id "searchtext"):
>
> <script language="JavaScript">
>         $("searchtext").focus();
> </script>

Does that work for you in Internet Explorer? It didn't for me. I'm
currently using a partial to hold my form-focus JavaScript and I pass
it the ID of the field I require focus for.

#/views/shared/_form_focus.html.erb
<script language="javascript" type="text/javascript"><!--
setTimeout(
function()
{
var myfield = document.getElementById('<%= "#{focusField}" -%>');
myfield.focus();
myfield.select();
}
, 1);
//--></script>

Then I call that in a view (in this example to pass focus to the field
with id first_name):

<%= render :partial => 'shared/form_focus', :locals => {:focusField =>
'first_name'} -%>

For more discussion about this solution, see
http://forums.htmlhelp.com/index.php?act=Print&cli...
Thorsten M. (Guest)
on 2008-12-05 13:48
(Received via mailing list)
> Does that work for you in Internet Explorer? It didn't for me. I'm
> currently using a partial to hold my form-focus JavaScript and I pass
> it the ID of the field I require focus for.

Sorry, can't say for sure. At least not after reading the thread you
linked.
If I got this right, the problem you mention happens only, if some
other
javascript (like alert) is executed same time.

But I can't test it right now.
Patrick D. (Guest)
on 2008-12-05 15:25
(Received via mailing list)
On Fri, Dec 5, 2008 at 4:50 AM, Thorsten Müller
<removed_email_address@domain.invalid>wrote:

>
> this one requires prototype (for textfield with id "searchtext"):
>
> <script language="JavaScript">
>        $("searchtext").focus();
> </script>
>
Thank you.  That did it (for me with Firefox).

--wpd
Hassan S. (Guest)
on 2008-12-05 19:10
(Received via mailing list)
<script language="JavaScript">

And remember, kids, it's never too late to pick up bad habits.  :-)

The "language" attribute of the script tag has been deprecated for,
oh, what, like TEN YEARS now?

Just sayin' ...

--
Hassan S. ------------------------ removed_email_address@domain.invalid
Patrick D. (Guest)
on 2008-12-05 19:13
(Received via mailing list)
On Fri, Dec 5, 2008 at 12:09 PM, Hassan S. <
removed_email_address@domain.invalid> wrote:

>
> <script language="JavaScript">
>
> And remember, kids, it's never too late to pick up bad habits.  :-)
>
> The "language" attribute of the script tag has been deprecated for,
> oh, what, like TEN YEARS now?
>
> Just sayin' ...
>
Ok,
As one of the "kids" to whom you refer (albeit a rather old, hairy
"kid"),
what would be the good habit I would want use instead?

--wpd
Hassan S. (Guest)
on 2008-12-05 19:42
(Received via mailing list)
2008/12/5 Patrick D. <removed_email_address@domain.invalid>:

> what would be the good habit I would want use instead?

Short answer:   <script type="text/javascript">

Longer answer: read the spec -- that is, develop the habit of looking
up the tags you're using rather than relying on potentially incorrect
or out-of-date online references --  <http://www.w3.org/TR/html401/>

Running your pages through the W3C validator will also point out
problematic markup, and frequently prevent a lot of styling and JS
headaches.

FWIW,
--
Hassan S. ------------------------ removed_email_address@domain.invalid
This topic is locked and can not be replied to.