我们如何在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
答案 0 :(得分: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
取自Here
我还必须将THIS添加到配置文件中,以使输入正常工作。
答案 1 :(得分:0)
不幸的是,我不确定是否可以在包装器中添加任何类来输入。就我而言,b.use :input
的DSL没有这样的选择。
您可以改为使用input_html
选项:
= f.input :title, input_html: { class: 'my-input-class' }
此功能描述了here。
对于大多数复杂情况,您可以在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