我目前有一个看起来像
的rails check_box_tag调用check_box_tag #{name}
我想要包含一个checked属性,我知道我可以用
check_box_tag name, value, checked
但是,如果我想将其设置为检查而不明确指定value
(我只想使用默认值),该怎么办?或者类似地,如果我想指定html选项而不指定checked
属性,该怎么办?有没有办法做到这一点?
答案 0 :(得分:15)
只想更新此内容。 check_box_tag
的第三个参数是表示已检查状态的布尔值。
check_box_tag name, value, true
答案 1 :(得分:8)
如果要选中复选框,则
check_box_tag name, value, {:checked => "checked"}
,否则
check_box_tag name, value
答案 2 :(得分:6)
check_box_tag (name,value =“1”,checked = false,options = {})
示例:
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" />
答案 3 :(得分:4)
没有办法直接做到这一点。但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
答案 4 :(得分:2)
如果有人有列类型布尔值,那么看看这个。 is_checked?将是默认的布尔值。它对我有用。
<%= hidden_field_tag :name, 'false' %>
<%= check_box_tag :name, true, is_checked? %>
答案 5 :(得分:0)
如果将“ 1”的值传递给value字段,则该值将传递复选框的真实状态的值,而与选中的默认值无关:
is_checked = <default boolean>
check_box_tag :show_defaults, '1', is_checked
(现在始终反映用户输入)