Подтвердить что ты не робот

Как сфокусировать поле ввода формы при загрузке страницы

В моем приложении rails 3 у меня есть файл haml view с формой вроде следующего:

= 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 для фокусировки?

4b9b3361

Ответ 1

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

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

или

$("carname").focus();

с HTML5

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

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

Ответ 2

Используйте 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