23

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

check_box_tag #{name}

我想包含一个选中的属性,我知道我可以使用它

check_box_tag name, value, checked

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

4

6 回答 6

18

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

check_box_tag name, value, true
于 2014-08-20T21:41:56.367 回答
8

如果要选中复选框,则

check_box_tag name, value, {:checked => "checked"} 

否则

check_box_tag name, value
于 2013-06-24T11:13:10.140 回答
8

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" />

api.rubyonrails.org

于 2016-05-04T19:14:15.027 回答
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
于 2012-08-03T13:44:11.137 回答
4

如果您将值“1”传递给 value 字段,它将传递复选框真实状态的值,而不管选中的默认值如何:

is_checked = <default boolean>

check_box_tag :show_defaults, '1', is_checked

(现在总是反映用户输入)

于 2019-02-08T19:51:18.013 回答
2

如果有人有布尔类型的列,那么看看这个。is_checked?将是默认布尔值。它对我有用。

<%= hidden_field_tag :name, 'false' %> <%= check_box_tag :name, true, is_checked? %>

于 2015-09-26T06:50:48.117 回答