Как сфокусировать поле ввода формы при загрузке страницы
В моем приложении 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 для фокусировки?
Ответы
Ответ 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