1

我们如何在 Simpleform 配置包装器中添加输入类?

我在下面尝试过,但似乎没有用

config.wrappers :horizontal, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
    b.use :html5
    b.use :placeholder
    b.use :label
    b.wrapper tag: 'div', class: 'col-lg-8' do |ba|
      ba.use :input, my_wrapper_html: { class: 'form-control' }
      ba.use :hint,  wrap_with: { tag: 'p', class: 'help-block' }
      ba.use :error, wrap_with: { tag: 'span', class: 'help-inline text-danger' }
    end
  end
4

2 回答 2

0

不幸的是,我不确定是否可以在包装器中添加任何类来输入。就我而言,这个 DSLb.use :input没有这样的选项。

您可以改用input_html选项:

= f.input :title, input_html: { class: 'my-input-class' }

此处描述了此功能。

app/inputs对于大多数复杂的情况,您可以在目录下定义自己的输入类:

class MyInput < SimpleForm::Inputs::BooleanInput
  html_options = label_html_options.dup
  html_options[:class] ||= []
  html_options[:class].push('my-input-class')
  @builder.label(label_target, html_options) {
    build_check_box_without_hidden_field + template.tag(:span).html_safe
  }
end

比使用这个输入:

= f.input :title, as: :my_input
于 2014-12-26T09:46:14.657 回答
0

看起来这是为了实现bootstrap 3?

尝试这个

config.wrappers :horizontal, tag: 'div', class: 'form-group', error_class: 'has-error', defaults: { input_html: { class: 'default_class' } }  do |b|
b.use :html5
b.use :min_max
b.use :maxlength
b.use :placeholder
b.optional :pattern
b.optional :readonly

  b.wrapper tag: 'div', class: 'controls' do |input|
    input.use :label, class: 'horizontal'
    input.wrapper tag: 'div' do |prepend|
     prepend.use :input, class: 'horizontal'
    end
    input.use :hint,  wrap_with: { tag: 'span', class: 'help-block' }
    input.use :error, wrap_with: { tag: 'span', class: 'help-block has-error' }
  end
end

取自这里

我还必须将THIS添加到配置文件中,以使输入正常工作。

于 2013-10-31T15:41:57.510 回答