如何在simple_form中将数据属性添加到表单标记?

时间:2013-05-13 20:59:33

标签: ruby-on-rails simple-form custom-data-attribute

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

这是我需要生成的内容:

<form data-validate="parsley">

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

3 个答案:

答案 0 :(得分:23)

试试这个:

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

<强>更新

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

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

通过将属性设置为空字符串,表单帮助器仅呈现属性。

答案 1 :(得分:1)

您可以通过传入数据散列直接设置数据属性,但是所有其他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

答案 2 :(得分:0)

对于2016年使用较新版本的Rails(4)或更新版本的Parsley(2)的任何人来说,这是你需要做的事情:

首先,在现在添加data-parsley-validate的新版本中激活包含数据属性的欧芹,而不是从Parsley版本1中添加data-validate="parsley"。现在让我们使用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中获取数据属性。