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 ответов:
Ах, это было легко
: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" %>
Это можно легко сделать, добавив
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 проверки из модели. Нет необходимости в дополнительном коде, просто установите его.