Rails f.submit:如何添加html属性?

时间:2013-05-24 21:54:25

标签: ruby-on-rails forms haml

我无法在Rails表单提交中添加特定的html属性。

= form_for :model do |f|
  ...
  = f.submit 'Submit', tabindex: '3'

tabindex属性未显示在表单中。我也试过html哈希无济于事。

它只生成此html标记:

<button type="submit" value="Submit">Submit</button>

编辑:我能想到的唯一替代方法是使用jQuery。

$('button[type=submit]').attr('tabindex', '3');

但这似乎有点矫枉过正了。似乎哈姆尔应该有办法。

1 个答案:

答案 0 :(得分:2)

f.submit 'Submit', tabindex: '3'的结果应为:

<input type='submit' value='Submit' tabindex='3'></input>

但是,您似乎获得了button元素,并且tabindex根本没有显示 - 所以其他内容肯定会在这里发生。

如果您有自定义表单构建器并覆盖submit方法,那肯定是结果。如果您需要该自定义表单构建器并仍希望将submit元素设置为按钮,则需要确保通过submit方法允许选项哈希。不确定您当前的方法是什么样的,但您可能会将其更新为以下内容:

def submit(value, options={})
  options.reverse_merge!(
    type: 'submit',
    value: value
  )

  button_tag(value, options)
end