如何在页面加载时聚焦表单输入字段

时间:2011-03-09 09:15:24

标签: ruby-on-rails ruby-on-rails-3

在我的rails 3应用程序中,我有一个视图haml文件,其形式如下:

= form_for(:car, :url => cars_path) do |f|
  %p
    = f.label :carname
  %p  
    = f.text_field :carname /focus here
  %p
    = f.label :carnr
  %p
    = f.text_field :carnr
  %p
    = f.submit

我希望在加载页面时输入字段 = f.text_field :carname处于焦点

怎么做?是否有必要使用jquery?还是有任何Rails方式来做焦点?

2 个答案:

答案 0 :(得分:56)

没有必要使用jquery,但是如果你不使用HTML5 则必须使用javascript 但是你现在必须使用jquery或javascript:

document.getElementById('carname').focus();

$("carname").focus();

with HTML5

= f.text_field :carname, :autofocus => true

HTML5方法有一点需要注意:自动对焦的字段不是 得到一个focus()事件,所以你通过onfocus做的任何CSS样式都不会发生。

答案 1 :(得分:7)

使用autofocus

注意:仅限HTML5。请参阅browser support

= form_for(:car, :url => cars_path) do |f|
  %p
   = f.label :carname
 %p  
   = f.text_field :carname, autofocus: true
 %p
   = f.label :carnr
%p
  = f.text_field :carnr
%p
= f.submit