Как добавить атрибут data в тег формы в simple_form? - программирование
Подтвердить что ты не робот

Как добавить атрибут data в тег формы в simple_form?

Я использую garlic.js для проверки моих форм. Garlic.js рекомендует добавить атрибут данных в тег формы.

Вот что мне нужно создать:

<form data-validate="parsley">

У меня возникают проблемы с созданием этого атрибута данных в теге формы. Я пробовал все и ничего не работал. У кого-нибудь есть решение?

4b9b3361

Ответ 1

Попробуйте следующее:

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

Обновление

В приведенном ниже комментарии, чтобы форма включала атрибут данных HTML5 без значения, попробуйте следующее:

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

Установив атрибут в пустую строку, хелпер формы отображает только атрибут.

Ответ 2

Для тех, кто наткнулся на это в 2016 году, используя либо новую версию Rails (4), либо более новую версию Parsley (2), вот что вам нужно сделать:

Прежде всего, чтобы активировать петрушку с атрибутами данных в новой версии, вы добавляете data-parsley-validate теперь вместо data-validate="parsley" из версии 1 из Parsley. Теперь давайте это получим, чтобы работать с рельсами form_for.

Даже если вы не используете петрушку, вот как вставить атрибут data в Rails 4.

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

Таким образом, в основном разница не использует хэш html=>{}. Я попробовал это, чтобы посмотреть, будет ли этот трюк работать, и, по крайней мере, для меня моя разметка выглядела так:

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

Но просто поместив атрибут data непосредственно там как символ с пустой строкой в ​​качестве соответствующего значения, и он отлично работал. Это разметка, которую я получил.

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

Иными словами, он совершенен. Итак, как использовать Rails 4 для получения атрибутов данных в вашем form_tag.

Ответ 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>