バリデートのJavascriptを使いまわし用にまとめました!

Ajaxzip3、LiveFormValidation、autoKanaのJavascriptプラグインの読み込み

DEMOページ

基本的に<head></head>内でOKですが
フォームのないページに無駄に読み込ませたくない場合は、
自身で分岐するなりしてフォームページのみで読み込んでください。

これ読み込んでる前提で処理書いてしまってるので
読み込んでおかないとエラー吐いちゃいますのでご注意を。

autoKana

LiveFormValidation

リンク貼っておいてなんですが
LiveFormValidationの方は中身いじってしまってるので公式から落としてきても使えるかどうか、確認してないだけなのでたぶん正常に動くかと。

フォームバリデート実行用のJavascriptの読み込み

「form_alert.js」は正直任意でOKです。
後述しますが、ページ離脱時のアラートです。

form.js

form_alert.js

form_alert.js処理内容の説明

ページ離脱前にアラートを出す

form.js処理内容の説明

基本的なHTMLのマークアップ方法

もともとLiveFormValidationプラグインは
バリデートの設定をしたフォーム部品の直後にエラーメッセージが挿入される仕様でしたが
デザイン上、折り返し位置が変になったりとか、もっと自由な位置に挿入したかったため、
上記のような仕様にカスタマイズしました。

本来なら「err_(フォームのID)」がなければフォーム部品の直後に挿入する、
みたいな条件分岐書いた方がよかったんでしょうけど
なんだか面倒だったのでやってません。

時間ができたらやるかもしれません。

form.jsファイル内で、未入力時と、入力時の色を設定する

1行目から上記のコードが書かれているので
デザインに合わせてカラーコードを変更してください。

ふりがな自動入力

漢字の名前を入力するテキストフィールドに
「data-kana」属性を付けて、ふりがなのテキストフィールドのIDを設定してやればOKです。

必須項目(テキストフィールド、テキストエリア、セレクトボックス)

「required」っていうクラスを付けるだけです。

必須項目(チェックボックス、ラジオボタン)

「required_check」というクラスを付けた親要素で囲ってください。
この際、エラーを出力するためのIDはフォーム部品ではなく親要素のIDとなります。

半角数字のみ

「num_init」というクラスを付けるとフォーカスから外れた際に、
数字以外を削除し、全角数字は半角数字に変換します。

半角英数字のみ

「alpnum_init」というクラスを付けるとフォーカスから外れた際に、
英語と数字以外を削除し、全角英数字は半角英数字に変換します。

メールアドレスで使える文字のみ

「mail_init」というクラスを付けるとフォーカスから外れた際に、
メールアドレスで使える文字以外を削除し、全角は半角に変換します。

メールアドレス形式チェック

「mail_check」というクラスを付けるとフォーカスから外れた際に、
メールアドレス形式の文字列なのかどうかチェックします。

電話番号形式チェック

「tel_check」というクラスを付けるとフォーカスから外れた際に、
電話番号形式の文字列なのかどうかチェックします。

とか言って実は10文字以上かどうか調べてるだけです。
本来であればハイフン込みの正規表現したいんですが面倒なのでしてません。

半角数字のみのクラスと併用して設定するとハイフン自動で消すので許してください。

年月日のセレクトボックス

親要素に「sel_init」というクラスを付けて、
年には「sel_year」、月には「sel_month」、日には「sel_day」というクラスを付けます。

年や月のセレクトボックスを変更した際に、
その月が31日なのか、30日なのか、28日なのか、取得して日のセレクトボックスの選択肢を変更します。
うるう年対策もバッチリよ!

郵便番号自動入力

郵便番号のテキストフィールドに、
onchangeで「autoZip(‘郵便番号’, ‘郵便番号2’, ‘都道府県’, ‘市区町村以降’);」として、
それぞれのname値を指定してください。

 

今後はもっと処理追加していきます。

とりあえず今回の案件の際に使ったものをまとめただけなので
他のものも順次使い回し用に追加していく予定ではあります。

ただ社内共有用に書いたというのが一番の目的なので
微調整せずにそのまま使えるかどうかといえば、どうなんでしょうか。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です