我无法在按钮上以简单的形式使用ID,我已尝试
= f.button, :input_html => { :id => 'my_id' }
= f.button, :input_html => { :id => 'my_id' }, :submit
= f.button, html: { id: :edit_account }
= f.button, html: { id: :edit_account } :submit
正确的做法是什么?
答案 0 :(得分:3)
= f.button :submit, id: "whatever"
如果查看documentation,它会接受一个可选字符串和一个options hash(用于class或id)。在内部,它只是调用submit_tag
帮助程序,这就是为什么它与input
帮助程序在input_html
散列中传递任何HTML属性的原因不同。
答案 1 :(得分:1)
尝试
= f.button :submit, input_html: { id: 'edit_account' }
来自docs:
如果要将相同的选项传递给表单中的所有输入(例如,默认类),可以使用simple_form_for中的:defaults选项。输入调用中的特定选项将覆盖默认值:
<%= simple_form_for @user, defaults: { input_html: { class: 'default_class' } } do |f| %>
<%= f.input :username, input_html: { class: 'special' } %>
<%= f.input :password, input_html: { maxlength: 20 } %>
<%= f.input :remember_me, input_html: { value: '1' } %>
<%= f.button :submit %>
<% end %>
由于Simple Form在您的标签周围生成一个包装div并默认输入,您可以使用:wrapper_html选项将任何html属性传递给该包装器,如下所示:
<%= simple_form_for @user do |f| %>
<%= f.input :username, wrapper_html: { class: 'username' } %>
<%= f.input :password, wrapper_html: { id: 'password' } %>
<%= f.input :remember_me, wrapper_html: { class: 'options' } %>
<%= f.button :submit %>
<% end %>