<%= f.label :category %><br/>
<%= check_box_tag 'category[]', '1', false %>
<%= label_tag 'community', 'community', class: 'category_select', value: '1' %>
<%= check_box_tag 'category[]', '2', false %>
<%= label_tag 'food', 'food', class: 'category_select', value: '2' %>
<%= check_box_tag 'category[]', '3', false %>
<%= label_tag 'music', 'music', class: 'category_select', value: '3' %><br/>
<%= check_box_tag 'category[]', '4', false %>
<%= label_tag 'education', 'education', class: 'category_select', value: '4' %>
<%= check_box_tag 'category[]', '5', false %>
<%= label_tag 'theatre', 'theatre', class: 'category_select', value: '5' %>
<%= check_box_tag 'category[]', '6', false %>
<%= label_tag 'art', 'art', class: 'category_select', value: '6' %><br/>
<%= check_box_tag 'category[]', '7', false %>
<%= label_tag 'culture', 'culture', class: 'category_select', value: '7' %>
<%= check_box_tag 'category[]', '8', false %>
<%= label_tag 'family', 'family', class: 'category_select', value: '8' %>
<%= check_box_tag 'category[]', '9', false %>
<%= label_tag 'sports', 'sports', class: 'category_select', value: '9' %><br/>
これらのオプションをコントローラーのcategory
配列の下に表示できるようにしたいので、すべてのオプションにcategory[]
という名前を付けました。私が達成したいのは、label_tag
フィールドとcheck_box_tag
フィールドがお互いについて知ることです。
<%= check_box_tag 'community', 'community', false %>
<%= label_tag 'community', 'community', class: 'category_select' %>
ここで、単語をクリックすると、ボックスもチェックされます。 label_tag
の値を使用してこれを達成しようとしましたが、機能していないようです。これは達成できますか?
これを行う1つの方法は、手動でlabel
要素を追加し(erb
なし)、チェックボックスを追加し、コンテンツに子としてラベルを付けることです。
<label class="category-select">
<%= check_box_tag 'category[]', '1', false %>
Community
</label>
...
それはhtmlの構造をいくらか変更しますが、レイアウト/ cssに影響を与える可能性があります。
ブロックをlabel_tag
に渡してから、ラベルタグ内のチェックボックス(およびその他の必要なもの)を渡すこともできます。
<%= label_tag do %>
<%= check_box_tag 'category[]', '1', false %>
Community
<% end %>
関連ドキュメント: http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html#method-i-label_tag
わかりました、私はこれに答えるのにかなり遅れています。私は同じ種類の問題の解決策を探していて、次のことを思いつきました:
<%= label_tag "some_name", raw("#{check_box_tag('some_name')} Click label to check") %>
これにより、次のようにhtmlが作成されます。
<label for="some_name"><input id="some_name" name="some_name" type="checkbox" value="1"> Click label to check</label>