gpt4 book ai didi

ruby-on-rails - rails 如何在多个(数组)check_box_tag 时让 label_tag 工作

转载 作者:行者123 更新时间:2023-12-03 16:01:16 24 4
gpt4 key购买 nike

我的 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

最佳答案

您可以将复选框属性作为第四个参数传递给 check_box_tag 方法。在这种情况下,您需要将 id 设置为等于标签的“for”属性。

%td
= check_box_tag 'fruits[]', 'apple', params[:fruits] && params[:fruits].include?('apple'), :id => 'fruits_apple'
%td
= label_tag 'fruits_apple', 'I like Apples'

关于ruby-on-rails - rails 如何在多个(数组)check_box_tag 时让 label_tag 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16885782/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com