我有这样的表格:
= form_tag(path, name: "name") do |f|
= hidden_field_tag "abc", content
= submit_tag "" do
%i.icon.ion-android-sync
正如您所看到的,我正在尝试将Ionicon放入Form Submit标签中
我尝试了很多方法,但没有一种方法可行
在给定的例子中,我得到一个宽度约为3px的空按钮。
是否可以在submit_tag中嵌入子项?如果,您将如何这样做?
非常感谢每个答案!
答案 0 :(得分:5)
简短的回答是" no"。但是,您可以创建一个类型为"提交"的按钮。我会做同样的事情并允许你把内容放在其中:
%button{type: "submit"}
%i.icon.ion-android-sync
答案 1 :(得分:0)
没有Rails submit
帮助器不允许你这样做。
我在我的应用中使用自定义提交帮助程序:
# Render a form submit button
# === Params
# +value+:: Value of the input/commit button, used for route constraints
# +text+:: Text for the button
# +:html_options+::
def submit(value=nil, text=nil, html_options={})
text ||= 'Submit'
html_options[:name] ||= 'commit'
html_options[:type] = 'submit'
html_options[:data] ||= {}
html_options[:data][:disable_with] ||= 'Please wait'
html_options[:autocomplete] = "off" # https://github.com/rails/jquery-ujs/issues/357
content_tag(:div, class: 'form-submit-wrapper') do
button_tag(html_options){ block_given? ? yield : text }
end
end
你可以在块中传递你想要的任何HTML(抱歉这是ERB,我对HAML并不熟悉)
<%= submit do %>
<i class="icon ion-android-sync"></i>
<% end %>
前两个参数仅在您的表单有多个提交按钮时才有用
<%= submit('preview_action', 'Preview result') do %>
<i class="icon ion-android-sync"></i>
<% end %>
<%= submit('really_do_action', 'Do it for real') do %>
<i class="icon ion-android-sync"></i>
<% end %>