Forme Simple: enlever l'étiquette extérieure pour une case à cocher en ligne avec l'étiquette

Utilisant Simple_form 2.0.2

le code de forme simple en utilisant HAML:

= f.input :remember_me, as: :boolean, inline_label: 'Remember me'

Mais il rend ceci:

<div class="control-group boolean optional">
  <label class="boolean optional control-label" for="admin_remember_me">Remember me</label>
  <div class="controls">
    <input name="admin[remember_me]" type="hidden" value="0" />
    <label class="checkbox"><input class="boolean optional" id="admin_remember_me" name="admin[remember_me]" type="checkbox" value="1" />Remember me</label>
  </div>
</div>

Comment puis-je enlever cette première étiquette qui est rendue, de sorte que je n'ai que l'étiquette en ligne?

32
demandé sur David Nix 2012-08-24 21:25:06

6 réponses

Vous pouvez utiliser:

= f.input :remember_me, as: :boolean, inline_label: 'Remember me', label: false
75
répondu Hernan S. 2012-08-27 19:48:54

trouvé une solution après beaucoup de Google fu.

Utiliser input_field au lieu de input qui ne générera pas automatiquement un label.

= f.input_field :remember_me, as: :boolean, inline_label: 'Remember me'
24
répondu David Nix 2012-08-24 18:33:48

Pour qui cela ne fonctionne pas

= F. input_field ...

ce

= F. check_box ...

11
répondu Serge Seletskyy 2013-09-20 09:50:02

La partie manquante est la boolean_style option:

options.merge!({label: false, boolean_style: :inline})

je vous suggère de créer une entrée personnalisée pour cela (par exemple: inline_checkbox)

boolean_style est configuré comme :imbriquée par défaut, je pense:

# Defaults to :nested for bootstrap config.
#   :inline => input + label
#   :nested => label > input
config.boolean_style = :nested
7
répondu gamov 2014-03-26 03:49:34
.control-group.error .help-inline {
  display: none;
}

Cela devrait fonctionner, ça fonctionne pour moi sur les rails 3.2 et simple_form 2.x+

0
répondu Dreamr OKelly 2013-02-03 21:17:45

peut-être trop tard, mais inspiré par la réponse de gamov j'ai fait un emballage personnalisé de Inline bootstrap case à cocher dans le fichier initializer 'config / simple_form_bootstrap.rb':

config.wrappers :horizontal_radio_and_checkboxes, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
   b.use :html5
   b.optional :readonly

   b.use :label, class: 'col-sm-3 control-label'
   b.use :input
   b.use :error, wrap_with: { tag: 'span', class: 'help-block' }
   b.use :hint,  wrap_with: { tag: 'p', class: 'help-block' }
 end

qui génère ce html:

 <div class="form-group boolean optional user_admin">
    <label class="boolean optional col-sm-3 control-label" for="user_admin">Admin</label>
    <div class="col-sm-9 checkbox-inline">
    <input name="user[admin]" value="0" type="hidden">
    <input class="boolean optional" id="user_admin" name="user[admin]" value="1" type="checkbox">
  </div>

0
répondu Marino 2014-11-10 15:33:10