HTML5 'обязательная' проверка в формах Ruby on Rails


Я не вижу этот вопрос нигде, это, надеюсь, быстро и легко.

Как я могу использовать валидаторы HTML5, такие как 'required', в моих формах (ruby on rails)?

например, как бы выглядела эта базовая форма, если бы я использовал в ней проверку HTML5?

<%=form_for @testimonial do |t|%> 
<dl>
  <dt><label for="testimonial_rating">Rating</label></dt>
  <dd><%=t.select :rating, Testimonial.ratings%></dd>
  <dt><label for="testimonial_content">Comments</label></dt> 
  <dd><%=t.text_area :content, :rows => 3%></dd>
  <dd><button class="button success">Submit Review</button></dd>
</dl>
<%end%>

само собой разумеется, что проверка на стороне сервера все равно требуется.

6 51

6 ответов:

Ах, это было легко :required => true

например: <%=t.text_area :content, :rows => 3, :required => true%>

просто чтобы добавить, если у вас есть поле электронной почты, вы также можете использовать атрибут 'pattern' для проверки формата электронной почты

<%=form.text_field :email, :required => true, :pattern => '[^@]+@[^@]+\.[a-zA-Z]{2,6}' %>

:)

дополнение к ответу @prashantsahni. Вы также можете использовать type = 'email' вместо шаблона регулярных выражений, то ваш erb-шаблон будет выглядеть так:

<%= f.email_field :email, id: 'user_email', type:'email', required: true, placeholder: "Email" %>  

дополнительная информация о проверке формы с помощью html5

Это можно легко сделать, добавив

f.text_field :first_name, :required => true
text_field_tag :first_name, nil, :required => true

нажав на границу abit дальше, вы можете добавить в pattern matcher для вашего ввода, например, по электронной почте:

f.email_field :email, 'Email', :required => true, :pattern => '[^@]+@[^@]+\.[a-zA-Z]{2,6}'

Это небольшой пример с общими атрибутами и для required вы только добавляете required:true, но не забывайте применять эти проверки в своем бэкэнде.

<%= f.text_field
    id: "yourID",
    class: "yourCLass",
    placeholder: "Your message",
    maxlength: 14,
    required: true
%>

для завершения других ответов, есть удивительный gem html5_validations что делает большую часть HTML5 проверки чтения из ActiveRecord проверки из модели. Нет необходимости в дополнительном коде, просто установите его.