jQuery>jQueryでフォームのバリデーション機能を実装する

jQueryでフォームのバリデーション機能を実装する

2018年6月10日

最近は、phpとjQueryをメインに勉強しています。
今回はjQueryを使って簡単なバリデーション機能を持った、フォームを作成します。

 

ソースコードはgithub

 

完成するとこんな感じです

 

 

 

バリデーションフォームの概要

phpでバリデーション処理を書くと送信ボタンを押してから、バリデーション機能を働かせていましたが、jQueryを利用すればリアルタイムでバリデーションチェックを行うことができるので、簡単なチェックは可能です。

ユーザー名とパスワードとパスワード再入力の確認を行います。

また、エラーがある状態ではボタンが押せないように非活性状態なっており、エラーがない時のみボタンが押せるように活性化状態なります。

 

ではコードを書いていきますが、フォームの見た目をかっこよくしたいのでお決まりの、bootstrap4を使います。

jQueryのバージョンは3.3.1です。

 

 

フォームの作成

 

まずはフォームを作ります。

 

index.html

 

シンプルです。

名前パスワードパスワードの確認があるだけのフォームです。

重要なのは、jQueryから操作するのでID名をきちんと識別できるようにしているところです。

ボタンのクラス名は初期状態でbtn btn-primary disabledになっていますが、バリデーションを通過した時に、btn btn-primaryというクラスに変更します。

 

 

スタイルを作る

cssは大したことをやっていませんが、エラーメッセージは赤文字で表示させるようにします。

基本的にはbootstrap4を使っていれば、おしゃれなフォームが作れるので、cssはさほど意識していません。

 

 

jQueryでバリデーション機能を実装していく

 

順を追って書いていきます。

まずはユーザー名のバリデーション機能を実装していきます

 

 

コメントに書いてある通りです。

フォームのユーザー名の部分の文字数を取得してきて、5文字以上20文字以内出ない場合は、エラーメッセージを表示させるようにしています。

 

こんな感じでパスワードのバリデーションも書いていきます

 

 

やっていることは、ユーザー名のバリデーションの時とほとんど同じです。

 

次にボタンを押す時の動作です。

ここで全てのバリデーションを通過しているか確認し、エラーがない場合のみボタン押下時に送信できるようにします

 

これもやっていることはシンプルです。

 

最後に、ボタンのクラス名を変更する処理です。
エラーがない場合のみ、ボタンの見た目を変えるようにクラス名を変更していきます。

 

これもまぁシンプルです。

注意点はクラス名を変更する時は、$(“#form_btn”).removeClass().addClass(“btn btn-primary”);とやっているように

.removeClass()でクラス名を一度削除しています。

 

 

簡単なチェックならばjQueryだけでも十分に行うことができます。

jQueryは見た目の部分を操作する印象が個人的に強かったのですが、こういった使い方もできるので面白いですね。