37

Simple_form2.0.2の使用

HAMLを使用した単純なフォームコード:

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

しかし、それはこれをレンダリングします:

<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>

レンダリングされた最初のラベルを削除して、インラインラベルのみを使用するにはどうすればよいですか?

4

6 に答える 6

88

以下を使用できます。

= f.input :remember_me, as: :boolean, inline_label: 'Remember me', label: false
于 2012-08-27T19:48:54.277 に答える
27

多くのGoogle fuの後に解決策を見つけました。

input_fieldwhichの代わりに使用inputすると、自動的にラベルが生成されません。

= f.input_field :remember_me, as: :boolean, inline_label: 'Remember me'
于 2012-08-24T18:33:48.357 に答える
7

simple_form 2.1.0 と rails 3.0.20 では、ここにリストされている解決策はどれも機能しませんでした (f.input_field は使用したくありません。これは敗北を認めるからです)。

欠けている部分はboolean_styleオプションです:

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

このためのカスタム入力を作成することをお勧めします (例: inline_checkbox)

boolean_style はデフォルトで :nested として設定されていると思います:

# Defaults to :nested for bootstrap config.
#   :inline => input + label
#   :nested => label > input
config.boolean_style = :nested
于 2014-02-12T05:28:07.383 に答える
0
.control-group.error .help-inline {
  display: none;
}

これは機能するはずです.Rails 3.2およびsimple_form 2.x+で機能します

于 2013-02-03T21:17:45.833 に答える
0

遅すぎるかもしれませんが、gamov の回答に触発されて、これを初期化ファイル ' 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

この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>

于 2014-11-10T15:33:10.633 に答える