我目前有一个看起来像的 rails check_box_tag 调用
check_box_tag #{name}
我想包含一个选中的属性,我知道我可以使用它
check_box_tag name, value, checked
但是,如果我想在不明确指定的情况下将其设置为选中状态value
(我只想使用默认值)怎么办?或者类似地,如果我想指定 html 选项而不指定checked
属性怎么办。有没有办法做到这一点?
我目前有一个看起来像的 rails check_box_tag 调用
check_box_tag #{name}
我想包含一个选中的属性,我知道我可以使用它
check_box_tag name, value, checked
但是,如果我想在不明确指定的情况下将其设置为选中状态value
(我只想使用默认值)怎么办?或者类似地,如果我想指定 html 选项而不指定checked
属性怎么办。有没有办法做到这一点?
只是想更新这个。第三个参数check_box_tag
是表示检查状态的布尔值。
check_box_tag name, value, true
如果要选中复选框,则
check_box_tag name, value, {:checked => "checked"}
否则
check_box_tag name, value
check_box_tag(名称,值 =“1”,选中 = false,选项 = {})
例子:
check_box_tag 'receive_email', 'yes', true
# => <input checked="checked" id="receive_email" name="receive_email" type="checkbox" value="yes" />
check_box_tag 'tos', 'yes', false, class: 'accept_tos'
# => <input class="accept_tos" id="tos" name="tos" type="checkbox" value="yes" />
check_box_tag 'eula', 'accepted', false, disabled: true
# => <input disabled="disabled" id="eula" name="eula" type="checkbox" value="accepted" />
没有办法直接做到这一点。但是check_box_tag
实现很简单,您可以对其进行修补或创建自己的助手。
原始实现:
def check_box_tag(name, value = "1", checked = false, options = {})
html_options = { "type" => "checkbox", "name" => name, "id" => sanitize_to_id(name), "value" => value }.update(options.stringify_keys)
html_options["checked"] = "checked" if checked
tag :input, html_options
end
如果您将值“1”传递给 value 字段,它将传递复选框真实状态的值,而不管选中的默认值如何:
is_checked = <default boolean>
check_box_tag :show_defaults, '1', is_checked
(现在总是反映用户输入)
如果有人有布尔类型的列,那么看看这个。is_checked?将是默认布尔值。它对我有用。
<%= hidden_field_tag :name, 'false' %>
<%= check_box_tag :name, true, is_checked? %>