68

この質問は他のどこにも見当たりません。うまくいけば、すばやく簡単な質問です。

フォーム(Ruby on Rails)で「required」などのHTML5バリデーターを使用するにはどうすればよいですか?

たとえば、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%>

言うまでもなく、サーバー側の検証は依然として必要です。

4

8 に答える 8

114

ああ、簡単だった:required => true

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

于 2012-11-24T14:26:25.250 に答える
40

さらに、メールフィールドがある場合は、「pattern」属性を使用してメールの形式を検証することもできます。

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

:)

于 2012-11-24T16:16:49.673 に答える
11

@prashantsahniの回答への追加。正規表現パターンの代わりにtype='email'を使用することもできます。そうすると、erb-templateは次のようになります。

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

HTML5を使用したフォーム検証に関する詳細情報

于 2015-05-13T18:37:34.783 に答える
5

これは共通の属性を持つ小さな例であり、requiredにはrequired:trueのみを追加しますが、この検証をバックエンドに適用することを忘れないでください。

<%= f.text_field
    id: "yourID",
    class: "yourCLass",
    placeholder: "Your message",
    maxlength: 14,
    required: true
%>
于 2016-03-24T13:23:10.917 に答える
5

新しい構文 <%= f.text_field :email, class: "form-control", required: true %>

于 2019-04-17T20:55:36.680 に答える
4

:required => trueこれは、入力フィールドにパラメーターを追加することで簡単に実行できます。

例えば

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

境界をさらに押し上げると、電子メールなどの入力にパターンマッチャーを追加できます。

f.email_field :email, 'Email', :required => true, :pattern => '[^@]+@[^@]+\.[a-zA-Z]{2,6}'
于 2013-03-13T10:47:55.137 に答える
3

他の回答を完了するために、モデルからActiveRecordValidationsから読み取ったHTML5検証を最大限に活用する素晴らしいgemhtml5_validationsがあります。追加のコードは必要ありません。インストールするだけです。

于 2017-05-16T11:09:37.890 に答える
1

何も機能しない場合はこれを使用してください

include_blank: false, required: true
于 2019-07-17T19:26:04.980 に答える