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

Автоматический метод установки табудинга с помощью бланков формы

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

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

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

4b9b3361

Ответ 1

Я обычно добавляю метод, подобный этому, в 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

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