【发布时间】:2013-06-02 18:13:35
【问题描述】:
我的 Rails 3.2.13 应用程序使用复选框数组(同一字段名称的多个可能值),带有标签:
%table
%tr
%td
= check_box_tag 'fruits[]', 'apple'
%td
= label_tag 'fruits[apple]', 'I like Apples'
%tr
%td
= check_box_tag 'fruits[]', 'banana'
%td
= label_tag 'fruits[banana]', 'I like Bananas'
表单正确提交 params 中的复选框为 params[:fruits] => ['apple', 'banana']
但是标签坏了——点击标签什么也没做。 (因为 html 标签标签的 for = 'fruits_xxxx' 但所有复选框的 ID 只是 id = 'fruits_' 所以标签不与复选框关联。)
如何指定 label_tag 以使其正确关联到其 check_box_tag? (我也尝试使用 :value 作为标签标签,例如 = label_tag 'fruits[]', I like Apples', :value => 'apple' 但这也不起作用)
注意:我最接近的是使用标签标签的块格式(将复选框放在标签中),就像标签下面一样,但是,使用块结构可以防止将复选框和标签放在单独的单元格中:
= label_tag do
= check_box_tag 'fruits[]', 'apple'
I like Apples
= label_tag do
= check_box_tag 'fruits[]', 'banana'
I like Bananas
【问题讨论】:
标签: ruby-on-rails forms label