简单形式:复选框的值始终为“1”

问题描述 投票:0回答:1

我有一个表单,需要添加 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个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.