简单表单:如何创建不包装输入并创建标签的自定义包装器?

时间:2013-08-22 15:28:49

标签: ruby-on-rails ruby-on-rails-3 simple-form

在simple_form自定义包装器中,您是否可以生成没有包装器及其相应标签的输入字段?

目前,我的自定义包装器如下所示:

config.wrappers :category_tab, tag: "ul", class: "inline-list" do |ul|                                                                                                                         
  ul.use :html5                                                                                                                                                                             
  ul.wrapper tag: "li" do |li|                                                                                                                                                              
    li.wrapper tag: "label", class: "faux-tab" do |label|                                                                                                                                     
      label.use :input, label: false                                                                                                                                                          
      label.use :label_text, wrap_with: { tag: "span", class: "label-text" }
    end    
  end                                                                                                                                                                                        
end

我正在尝试输出

下面的HTML结构
<ul>
  <li>
    <label>
      <input type="radio"></input>
      <span></span>
    </label>
  </li>
</ul>

目前的输出是:

<ul class="inline-list radio_buttons optional search_category">
  <li>
    <label class="faux-tab">
      <span class="radio">
        <input checked="checked" class="radio_buttons optional" id="search_category_" name="search[category]" type="radio" value="">
        <label class="collection_radio_buttons" for="search_category_">All</label>
      </span>
      <span class="label-text">Category</span>
    </label>
  </li>
</ul>

2 个答案:

答案 0 :(得分:1)

这是simple_form.rb中的配置。找到这一行,并确保boolean_style的值为:inline

# Define the way to render check boxes / radio buttons with labels. # Defaults to :nested for bootstrap config. # inline: input + label # nested: label > input config.boolean_style = :inline

答案 1 :(得分:0)

以下代码可能会产生您期望的HTML:

config.wrappers :category_tab, tag: "ul" do |ul|
  ul.use :html5
  ul.wrapper tag: "li" do |li|
    li.wrapper tag: "label" do |label|
      label.use :input, label: false 
    end    
  end
end
相关问题