遵守没有 "data-" 的简单形式的 Required 标签

Abide Required tag in simple-form without "data-"

对于 Foundation 6 和 Abide,我希望以简单形式使用此标签:

<input class="string optional" pattern="text" type="text" name="service[street_address]" id="service_street_address" required>

具有 required 属性。

我试过这个:

<%= service.input_field :street_address, data: {:required => ''}, pattern:"text" %>

但是 required 标签变为 data-required 并破坏了 Abide 验证:

<input data-required="" class="string optional" pattern="text" type="text" name="service[street_address]" id="service_street_address">

有什么办法可以只得到 requiredrequired="" 吗?

"Required" 变为 "data-required" 因为您已将其放入数据:{}。 data: {} 所做的是为您创建 data-* 标签。所以最后的输入是"data-required"也就不足为奇了。如果您正在寻找 "required",那么您使用了错误的方法。

使用普通的 form_for 标签,您可以将属性作为散列中的选项传递,如下所示:

<%= service.input_field :street_address, required: true, pattern:"text" %>

使用 simple_form,因为 simple_form 会自动创建一个包装器和一个标签,您必须澄清您正在将属性添加到 输入 ,像这样:

<%= service.input_field :street_address, input_html: { required: true }, pattern:"text" %>

我相信,在您的情况下,input_field 是 form_for,而不是 simple_form 标签。所以先试试第一种方法,不行再试试第二种

(作为旁注,您会注意到它产生的输入有这个 html:

<input required="required">

而不是:

<input required>

但这些是完全一样的)

如果需要:true 不起作用,请尝试:

<%= service.text_field :postal_box, required: "required", pattern: "text" %>