使用默认值选中rails check_box_tag set

Jef*_*rey 20 checkbox arguments ruby-on-rails

我目前有一个看起来像rails的check_box_tag调用

check_box_tag #{name}
Run Code Online (Sandbox Code Playgroud)

我想要包含一个checked属性,我知道我可以使用它

check_box_tag name, value, checked
Run Code Online (Sandbox Code Playgroud)

但是如果我想在没有明确指定value的情况下将其设置为检查(我只想使用默认值).或者类似地,如果我想指定html选项而不指定checked属性该怎么办.有没有办法做到这一点?

KPh*_*sey 16

只是想更新这个.第三个参数check_box_tag是表示已检查状态的布尔值.

check_box_tag name, value, true
Run Code Online (Sandbox Code Playgroud)

  • 在这种情况下,“价值”是什么? (3认同)

小智 8

如果您想要选中复选框,那么

check_box_tag name, value, {:checked => "checked"} 
Run Code Online (Sandbox Code Playgroud)

除此以外

check_box_tag name, value
Run Code Online (Sandbox Code Playgroud)


shi*_*ovk 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" />
Run Code Online (Sandbox Code Playgroud)

api.rubyonrails.org


dim*_*uch 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
Run Code Online (Sandbox Code Playgroud)