ユーザ用ツール

サイト用ツール


web:js:jquery:plugin:validation

Validation

Formの入力チェックをしてくれるpluginです。

Load

本体と日本語ファイルを読み込んでいます。1)

<script type="text/javascript" src="src/path/to/js/jquery.validate/jquery.validate.min.js"></script>
<script type="text/javascript" src="src/path/to/js/jquery.validate/localization/messages_ja.js"></script>

フォーム

以下の様なフォームを作成します。

<form id="form-id">
  <label>名     前 </label><input type="text" name="name" placeholder="お名前"><br/>
  <label>メールアドレス </label><input type="text" name="email" placeholder="メールアドレス"><br/>
</form>

<html>
<form id=“form-id”>

<label>名     前 </label><input type="text" name="name" placeholder="お名前"><br/>
<label>メールアドレス </label><input type="text" name="email" placeholder="メールアドレス"><br/>

</form>
</html>

ルール

ルール例

$(function(){
  $("#form-ID").validate({
    rules : {
      name : {
        required: true,
        minlength: 2
      }
      , email : {
        required: true,
        email: true
      }
    }
  });
})

これもロードします

<script type="text/javascript" src="src/path/to/js/jquery.validate/myrules.js"></script>

動作例

エラーがあると以下の様な感じで表示されます。

<html>
<form id=“form-id”>
<label>名     前 </label>
<input type=“text” placeholder=“お名前” name=“name”>
<label class=“error” for=“email”>このフィールドは必須です。</label>
<br>
<label>メールアドレス </label>
<input type=“text” placeholder=“メールアドレス” name=“email”>
<label class=“error” for=“email”>このフィールドは必須です。</label>
<br>
</form>
</html>

デフォルトのバリデーションルール

ルール名内容
required必須入力チェックを行う
remoteバリデーション結果をサーバに問い合わせる
email入力値がメールアドレスのフォーマットであるか
url入力値がURLのフォーマットであるか
date入力値が日付であるか
dateISO入力値がISO形式の日付であるか
number入力値が数字であるか
digits入力値が数字のみであるか(整数のみ)
creditcard入力値がクレジットカード番号のフォーマットであるか
equalTo入力値が指定した値と一致しているか(確認のため二度入力する項目など)
maxlength入力値が指定した桁数以下か
minlength入力値が指定した桁数以上か
rengelength入力値が指定した桁数の範囲であるか
renge入力値が指定した数字の範囲であるか
max入力値が指定した数字以下であるか
min入力値が指定した数字以上であるか

条件付き

rules: {
  abc: {
    required: '#male:checked'
  }
}
rules: {
  abc: {
    required: '#male:!checked'
  }
}
rules: {
  "abc": {
    required: function() { return ($('#day').val() ==  '20' || $('#day').val() == '30'); }
  }
}

入力確認

rules: {
  password: {
     required: true,
     minlength: 5
  },
  confirm_password: {
     required: true,
     minlength: 5,
     equalTo: "#password"
  }
}

カスタムルール例

$(function() {
	// Alphabet
	jQuery.validator.addMethod("Alphabet", function(value, element) { 
		return this.optional(element) || /^[A-Za-z]*$/.test(value);
	}, "アルファベットを入力してください");
})

remote

Ajaxで別のファイルに接続して、返り値がfalse, undefined or nullの場合invalidとなる。

$(function(){
  $("#form-ID").validate({
    rules : {
      name : {
        required: true,
        minlength: 2
      }
      remote: {
        url: "path/to/url/namecheck.php",
        type: "get",
        data: {
          username: function() {
            return $('#name').val();
          }
        }
      }
    }
  });
})

このとき相手側はGETパラメータの['username']で値を受け取り、必要なチェックを行って'true'または'false'を返す。2)

参考

1)
jqueryも必要です
2)
複数のデータが必要な場合は、data:の中身を複数書けばOK
3)
2011/09/16現在 Ver.1.8.1には日本語ファイルが同梱されている
web/js/jquery/plugin/validation.txt · 最終更新: 2017/04/14 05:21 by 127.0.0.1