Je ne vois cette question nulle part ailleurs, espérons-le rapide et facile.
Comment utiliser des validateurs HTML5, tels que "requis", dans mes formulaires (Ruby on Rails)?
Par exemple, à quoi ressemblerait ce formulaire de base si j'utilisais la validation 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%>
Il va sans dire que la validation côté serveur est toujours requise.
Ah, c'était facile :required => true
par exemple: <%=t.text_area :content, :rows => 3, :required => true%>
Juste pour ajouter, si vous avez un champ email, vous pouvez également utiliser l'attribut 'pattern' pour valider le format de l'email
<%=form.text_field :email, :required => true, :pattern => '[^@]+@[^@]+\.[a-zA-Z]{2,6}' %>
:)
Ajout à la réponse @prashantsahni. Vous pouvez également utiliser type = 'email' à la place du motif regex, votre erb-template ressemblera à ceci:
<%= f.email_field :email, id: 'user_email', type:'email', required: true, placeholder: "Email" %>
Plus d'informations sur les validations de formulaires utilisant html5
Ceci est un petit exemple avec les attributs communs et pour obligatoire vous ajoutez seulement required: true, mais n'oubliez pas d'appliquer cette validation dans votre backend.
<%= f.text_field
id: "yourID",
class: "yourCLass",
placeholder: "Your message",
maxlength: 14,
required: true
%>
Cela pourrait être facilement fait en ajoutant :required => true
paramètre dans vos champs de saisie:
Par exemple
f.text_field :first_name, :required => true
text_field_tag :first_name, nil, :required => true
En poussant la limite un peu plus loin, vous pouvez ajouter un matcher de modèle pour votre entrée, tel que l'email:
f.email_field :email, 'Email', :required => true, :pattern => '[^@]+@[^@]+\.[a-zA-Z]{2,6}'
Nouvelle syntaxe <%= f.text_field :email, class: "form-control", required: true %>
Pour compléter les autres réponses, il existe un génial gem html5_validations , qui tire le meilleur parti des validations HTML5 lues à partir de ActiveRecord Validations à partir du modèle. Aucun code supplémentaire n'est nécessaire, il suffit de l'installer.
Utilisez ceci si rien ne fonctionne
include_blank: false, required: true