我需要能够使用bootstrap append和prepend来使用简单的表单输入标记。我可以很容易地做到这一点,但不能让他们两个都工作。这可能吗。
这里是我使用haml这是一个前置,但我需要另一个在最后,所以使用追加。
= f.input :domain, wrapper: :prepend, label: false do
%span.add-on
%span.icon @
= f.input_field :domain
答案 0 :(得分:0)
simple_form只包含:prepend
或:append
的包装,但不能同时包含两者。幸运的是,构建一个可以同时执行这两者的自定义包装器非常容易。只需复制&粘贴其中一个包装并稍微修改它。
这是我的解决方案:
配置/初始化/ simple_form.rb
config.wrappers :prepend_append, :tag => 'div', :class => "control-group", :error_class => 'error' do |b|
b.use :html5
b.use :placeholder
b.use :label
b.wrapper :tag => 'div', :class => 'controls' do |input|
input.wrapper :tag => 'div', :class => 'input-prepend input-append' do |pa|
pa.use :input
end
input.use :hint, :wrap_with => { :tag => 'span', :class => 'help-block' }
input.use :error, :wrap_with => { :tag => 'span', :class => 'help-inline' }
end
end
并且,在您看来:
= f.input :url, wrapper: :prepend_append, label: false do
%span.add-on something
= f.input_field :url, input_html: { class: "span2" }
%span.add-on something
最后,将此添加到您的css:
.input-prepend .add-on,
.input-append input {
float: left;
}
希望有所帮助。务必重启服务器。
答案 1 :(得分:0)
最简单的方法就是:
<%= f.input :field, :wrapper_html => {class: "input-prepend input-append"} do %>
<span class="add-on">$</span>
<%= f.input_field :field %>
<span class="add-on">%</span>
<% end %>