0

我需要能够使用引导程序追加和前置来使用简单的表单输入标记。我可以很容易地做到这一点,但不能让他们都工作。这可能吗。

这是我使用的haml,这是一个前置,但我最后需要另一个,所以使用append。

= f.input :domain, wrapper: :prepend, label: false do
  %span.add-on
    %span.icon @
  = f.input_field :domain
4

2 回答 2

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 %>
于 2013-09-05T16:58:33.997 回答
0

simple_form 仅具有 or 的包装器,: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;
}

希望有帮助。请务必重新启动服务器。

于 2013-03-24T03:21:43.360 回答