17

我正在使用garlic.js 来验证我的表单。Garlic.js 建议在表单标签上添加数据属性

这是我需要生成的:

<form data-validate="parsley">

我在表单标签上生成此数据属性时遇到问题。我尝试了一切,但没有任何效果。有人对此有解决方案吗?

4

3 回答 3

25

试试这个:

<%= simple_form_for @entity, :html => {:"data-validate" => 'parsley'} do |f| %>
    <!-- inputs -->
<% end %>

更新

从下面的评论中,要让表单包含一个没有值的 HTML5 数据属性,请尝试以下操作:

<%= simple_form_for @entity, :html => {:"other-data-value" => ''} do |f| %> 

通过将属性设置为空字符串,表单助手只呈现属性。

于 2013-05-13T21:13:10.620 回答
3

您可以通过传入数据哈希直接设置数据属性,但所有其他 HTML 选项必须包含在 HTML 键中。例子:

<%= form_for(@post, data: { validate: "parsley" }, html: { name: "go" }) do |f| %>
   ...
<% end %>

为此生成的 HTML 将是:

<form action='http://www.example.com' method='post' data-validate='parsley' name='go'>
  ...
 </form>

api.rubyonrails.org

于 2019-02-06T18:50:59.713 回答
0

对于在 2016 年使用较新版本的 Rails (4) 或较新版本的 Parsley (2) 遇到此问题的任何人,您需要执行以下操作:

首先,在您data-parsley-validate现在添加的新版本中使用数据属性激活 parsley,而不是data-validate="parsley"来自 Parsley 的版本 1。现在让我们让它与 rails 一起工作form_for

即使您不使用欧芹,这也是在 Rails 4 中插入数据属性的方法。

<%= form_tag '/login', :"data-parsley-validate" => '' do %>
    <!-- inputs -->
<% end %>

所以基本上区别在于不使用html=>{}哈希。我试着看看这个技巧是否有效,至少对我来说,我的标记看起来像这样:

<form action="/login" method="post" html="{:data-parsley-validate}">
    <!-- inputs -->
</form>

但是,只需将数据属性作为符号直接放在那里,并以空字符串作为相应的值,它就可以完美地工作。这是我收到的标记。

<form action="/login" method="post" data-parsley-validate>
    <!-- inputs -->
</form>

换句话说,它是完美的。这就是如何使用 Rails 4 在你的form_tag.

于 2016-01-08T00:30:49.397 回答