2013-04-18 9 views
10
<%= 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/> 

Chciałbym móc mieć te opcje pojawiają się w moim kontrolera pod category tablicy, więc nazwałem wszystkie opcje category[]. Co chciałbym osiągnąć, jest dla pól label_tag i wiedzieć o siebie:check_box_tag z label_tag akcji kliknij

<%= check_box_tag 'community', 'community', false %> 
<%= label_tag 'community', 'community', class: 'category_select' %> 

tutaj, jeśli kliknę na słowach, okno zostaje również sprawdzone. Próbowałem to osiągnąć z wartościami na label_tag, ale to nie działa. Czy można to osiągnąć?

Odpowiedz

23

Jednym ze sposobów, aby to zrobić jest dodanie label elementy ręcznie (bez erb) i dodać pola wyboru i treści etykiet jako dzieci:

<label class="category-select"> 
    <%= check_box_tag 'category[]', '1', false %> 
    Community 
</label> 
... 

Mimo, że nie zmienia strukturę html nieco, i może mieć wpływ na twój układ/css.

+0

to działa doskonale ... po prostu chciał wrzucić do głowy nikomu przeglądam to =) – Dudo

6

OK, jestem dość późno, aby odpowiedzieć na to pytanie. Szukałem rozwiązania tego samego problemu i kinda wymyślił następujący:

<%= label_tag "some_name", raw("#{check_box_tag('some_name')} Click label to check") %> 

To stworzyłoby html następująco:

<label for="some_name"><input id="some_name" name="some_name" type="checkbox" value="1"> Click label to check</label> 
Powiązane problemy