使用表单助手设置tabindex的自动方法

时间:2008-10-21 23:53:38

标签: ruby-on-rails

在Rails中使用表单助手时,是否有一种简单的方法让表单助手自动设置tabindex参数?

基本上,我不希望在构建表单时在每个表单元素上手动设置选项卡索引(我在更改内容时忘记更新它们)。我写的大多数表单基本上都是字段列表。选项卡索引应按其定义的顺序排列。理想情况下,我会在form_for调用中设置初始索引,其他所有内容都将为我处理。

有谁知道怎么做?

1 个答案:

答案 0 :(得分:31)

我通常会将这样的方法添加到ApplicationHelper

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

然后在我的观点中,我使用:tabindex => autotab调用帮助器,如下所示:

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

您还可以一次修改所有text_fieldcheck_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

这可能比它的价值更麻烦