0
0

railsのemail_fieldのバリデーションが効かない

Last updated at Posted at 2024-05-29

発生した事象

フォームヘルパーのemail_fieldにはバリデーションがあります。
email形式でない文字を入力した際に「メールアドレスに「@」を挿入してください~」というような文言が表示されます。
image.png

該当コード

  <div>
    <%= form.label :name, style: "display: block" %>
    <%= form.text_field :name %>
  </div>

  <div>
    <%= form.label :email, style: "display: block" %>
    <%= form.email_field :email %>
  </div>

  <div>
    <%= form.submit %>
  </div>

このときに<%= form.submit %>の部分を以下のbuttonタグに置き換えます。

  <div>
    <button type="button" onclick="submit()">Create User</button>
  </div>

とすると下の写真のようにemail_fieldのバリデーションが効きません、、
image.png

原因

原因としましてはonclick="submit()"でした。
onclick="submit()"を使用すると、フォームヘルパーのバリデーションが効かないみたいでした。
onclick="submit()"だとページリロードが走っているので、バリデーションをスキップしてしまってるのかもしれません。

以下追記

コメントでrequestSubmit()を使用すると行けるのではということで、試してみた結果requestSubmit()だとバリデーションが効きました。

<button type="button" onclick="requestSubmit()">Create User</button>
0
0
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0