在Ruby on Rails表单中,HTML5'需要'validation

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

我如何在我的表单中使用HTML5validation器(例如“required”)(ruby on rails)?

例如,如果我在其中使用了HTML5validation,那么这个基本表单将如何显示呢?

<%=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%> 

毫无疑问,服务器端validation仍然是必需的。

啊,这很简单:required => true

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

只需要添加,如果你有一个电子邮件字段,你也可以使用“模式”属性来validation电子邮件的格式

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

🙂

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

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

有关使用html5进行表单validation的更多信息

这是一个共同的属性的一个小例子,并要求你只添加required:true,但不要忘记在你的后端应用这个validation。

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

这可以通过在input字段中添加:required => true参数来轻松完成:

例如

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

推进边界进一步提高,你可以添加模式匹配器为您的input,如电子邮件:

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

为了完成其他答案,有一个很棒的gem html5_validations ,它使得从模型中读取ActiveRecordvalidation的大部分HTML5validation。 没有额外的代码需要,只需安装它。