Автоматический метод установки tabindex с помощью помощников форм - PullRequest
17 голосов
/ 22 октября 2008

Есть ли простой способ заставить помощники форм автоматически устанавливать параметр tabindex при использовании помощников форм в Rails?

По сути, я не хочу вручную устанавливать индекс вкладки для каждого элемента формы при создании форм (я постоянно забываю обновлять их при изменении). Большинство форм, которые я пишу, представляют собой список полей. Индекс вкладки должен быть в том порядке, в котором они определены. В идеале я бы установил начальный индекс в вызове form_for, а все остальное будет обработано для меня.

Кто-нибудь знает, как это сделать?

1 Ответ

31 голосов
/ 22 октября 2008

Я обычно добавляю такой метод к ApplicationHelper

def autotab
  @current_tab ||= 0
  @current_tab += 1
end

Затем, по моему мнению, я звоню помощнику с :tabindex => autotab примерно так:

<%= text_field "post", "login",:tabindex => autotab, :value => @login %>

Вы также можете изменять все методы text_field, check_box, по одному, чтобы автоматически добавлять tabindex, добавляя что-то вроде этого в ваш помощник приложения: (не проверено, но вы получаете точку)

def text_field_with_tabindex(*args)
  options = args.last
  options[:tabindex] = autotab if options.is_a?(Hash) && options[:tabindex].nil?

  text_field_without_tabindex(*args)
end

def self.included(base)
  base.class_eval do
    alias_method_chain :text_field, :tabindex
  end
end

Это может быть больше проблем, чем стоит

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...