Как сфокусировать поле ввода формы при загрузке страницы - PullRequest
24 голосов
/ 09 марта 2011

В моем приложении 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 ]

57 голосов
/ 09 марта 2011

нет необходимости использовать jquery, но необходимо использовать javascript , если вы не используете HTML5 , но сейчас вам придется делать с jquery или javascript:

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

или

$("carname").focus();

с HTML5

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

Существует одно предостережение относительно подхода HTML5: поле, на которое вы автоматически фокусируете, НЕ получает фокус(), поэтому никакого стилевого оформления CSS, которое вы делаете через onfocus, не происходит.

10 голосов
/ 31 марта 2014

Использование autofocus.

ПРИМЕЧАНИЕ: только HTML5. См. Поддержка браузера .

= 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...