在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。 没有额外的代码需要,只需安装它。