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

我希望能有這些選項在我的下category陣列控制器顯示出來,所以我叫所有的選項category[]。我想完成什麼,是爲label_tag和領域瞭解對方:check_box_tag與label_tag點擊動作

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

在這裏,如果我點擊的話,箱子也被選中。我試圖用label_tag上的值完成此操作,但它似乎不起作用。這可以完成嗎?要做到這一點

回答

23

一種方法是添加label元素手動(無erb),並添加複選框和標籤內容爲孩子:

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

雖然這確實改變了HTML的結構有點,並可能對您的佈局/ css有影響。

+0

這個完美的作品......只是想拋出一個擡頭給任何人瀏覽這個=) – Dudo

6

好的,我很晚纔回答這個問題。我一直在尋找同樣有點問題的解決方案,並與下面上來:

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