2013-04-18 17 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/> 

mi piacerebbe essere in grado di avere queste opzioni rivelano in mio controller in una matrice category, così ho chiamato tutte le opzioni category[]. Quello che mi piacerebbe realizzare, è per i campi label_tag e di conoscere l'un l'altro:check_box_tag con azione label_tag click

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

qui, se clicco sulle parole, anche la casella viene selezionata. Ho provato a realizzare questo con i valori sullo label_tag, ma non sembra funzionare. Questo può essere realizzato?

risposta

23

Un modo per farlo è quello di aggiungere le label elementi manualmente (senza erb), e aggiungere le caselle di controllo e il contenuto dell'etichetta da bambini:

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

Anche se che fa cambiare la struttura del codice HTML in qualche modo, e potrebbe avere un impatto sul tuo layout/css.

+0

questo funziona perfettamente ... volevo solo gettare un testa a testa a chiunque altro sfogliando questo =) – Dudo

6

Ok, sono in ritardo per rispondere a questo. Stavo cercando una soluzione per lo stesso problema un pò e si avvicinò con seguente:

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

Ciò creerebbe html come segue:

<label for="some_name"><input id="some_name" name="some_name" type="checkbox" value="1"> Click label to check</label> 
Problemi correlati