首页 > 解决方案 > 简单形式:复选框的值始终为“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">

如何用 替换1nil

先感谢您。

标签: ruby-on-railssimple-form

解决方案


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

例如

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

这将作为status=completed.

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

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


推荐阅读