【问题标题】:Simple Form: checkbox's value is always "1"简单形式:复选框的值始终为“1”
【发布时间】:2021-08-24 15:46:51
【问题描述】:

我有一个表格,需要添加一个 GDPR 复选框。

如果复选框被点击(= 选中),复选框的值应该是true(或1)。如果不是,那么值应该是false(或者可能是nil)。

这就是我渲染复选框的方式:

= f.input :gdpr, as: :boolean, required: true, label: false, checked_value: true, unchecked_value: false, input_html: { }

但是,当我查看生成的 HTML 时,我看到(可能)默认情况下复选框的值为 1 - 这怎么可能?

编辑:这是呈现的 HTML:

<input name="obj[gdpr]" type="hidden" value="open">
<input required="required" aria-required="true" type="checkbox" value="true" name="obj[gdpr]" id="obj_gdpr">

如何将1 替换为nil

提前谢谢你。

【问题讨论】:

    标签: ruby-on-rails simple-form


    【解决方案1】:

    value 属性不是复选框的默认值。如果选中复选框,则该属性作为输入值提交给服务器。

    例如

    <label>Completed?</label>
    <input type="checkbox" value="completed" name="status"
    

    这将被提交为status=completed

    要检查复选框是否被选中,请使用 JS 中 DOM 节点的 checked 属性。

    另见MDN解释:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#value

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-24
      • 1970-01-01
      • 1970-01-01
      • 2015-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多