railsで、checkboxとLABLEの組み合わせで、チェックボックスが反応なしの現象が起こりました。
調査しにくいので、共有したいと思います。
現象
チェックボックスをクリックしても、チェックされなくて反応なしです。
開発環境
Rails 4.1.4
ruby 2.1.2p95
viewテンプレート: erb
lable forとは
<LABLE for="ID属性値">タグを使用すると、
<LABLE>タグの開始タグと終了タグに挟まれた文書が、
ID属性の属性値として「ID属性値」と同じ値が書き込まれた部品と、関連付けされます。
発生状況
<%= check_box_tag 'item_ids[]', item.id, item_ids.include?(item.id), id: "AAA"%>
<LABLE for="BBB"><%= item.name %></LABLE>
checkboxのID:AAA
lableのfor: BBB
checkboxのIDとlableのforが一致しないため、現象が起こりました。
対処
lableのforの値はcheckboxのidと同じように修正します。
※関連付けるために、値は一致しないのは正しくないですが、
まさかチェックボックス動作に影響するのは思いませんでした。