17


9

フォームヘルパーを使用してtabindexを設定するための自動メソッド

Railsでフォームヘルパーを使うときにフォームヘルパーにtabindexパラメータを自動的に設定させる簡単な方法はありますか?

基本的に、フォームを構築するときにすべてのフォーム要素に手動でタブインデックスを設定する必要はありません(変更したときに更新するのを忘れています)。 私が書くフォームの大部分は基本的にフィールドのリストです。 タブインデックスは、定義されている順序になっている必要があります。 理想的には、 `form_for`呼び出しで初期インデックスを設定し、それ以外のすべては私のために処理されるでしょう。

誰もがこれを行う方法を知っていますか?

1 Answer


31


私は通常このようなメソッドを `ApplicationHelper`に追加します

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

それから私の意見では、私は `:tabindex ⇒ autotab`を使ってヘルパーを呼び出します。

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

あなたのアプリケーションヘルパーに次のようなものを追加することによって、tabindexを自動的に追加するために text_field、` check_box`、メソッドを一度に一つずつ修正することもできます。

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

それは価値がある以上に面倒かもしれません