Ruby on Rails表单中的HTML5'required'验证

LpL*_*ich 61 validation html5 ruby-on-rails

我无法在其他任何地方看到这个问题,希望这是一个快速而简单的问题.

如何在我的表单(ruby on rails)中使用HTML5验证器,例如"required"?

例如,如果我在其中使用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%>
Run Code Online (Sandbox Code Playgroud)

毫无疑问,仍然需要服务器端验证.

LpL*_*ich 94

啊,这很容易 :required => true

例如: <%=t.text_area :content, :rows => 3, :required => true%>

  • 或者`required:true` (18认同)

小智 39

只需添加,如果您有一个电子邮件字段,您还可以使用'pattern'属性来验证电子邮件的格式

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

:)

  • 当你可以使用`form.email_field`时,你为什么要这样做? (7认同)
  • 附带说明一下,永远不要尝试使用电子邮件验证正则表达式。它会让各种边缘情况溜走,或者阻止真正有效的情况。您最好允许一切并通过尝试发送电子邮件并要求他们在发生任何事情之前单击其中的链接来检查服务器端。 (2认同)

Dmi*_*dov 10

除了@prashantsahni回答.您也可以使用type ='email'而不是正则表达式模式,那么您的erb-template将如下所示:

<%= f.email_field :email, id: 'user_email', type:'email', required: true, placeholder: "Email" %>  
Run Code Online (Sandbox Code Playgroud)

有关使用html5的表单验证的更多信息


小智 5

这是一个具有公共属性的小示例,对于 required,您只需添加 required:true,但不要忘记在后端应用此验证。

<%= f.text_field
    id: "yourID",
    class: "yourCLass",
    placeholder: "Your message",
    maxlength: 14,
    required: true
%>
Run Code Online (Sandbox Code Playgroud)


gsu*_*umk 5

新语法 <%= f.text_field :email, class: "form-control", required: true %>