Class: FormValidationLogic

h5.validation. FormValidationLogic

new FormValidationLogic()

FormValidationロジック

フォーム要素を集約したオブジェクトのバリデートを行うためのロジックです。

Source:

Methods

(static) addRule(ルールオブジェクト)

バリデートルールを追加する

h5.validation.FormValidationLogic.validateでバリデートを行う際のバリデートルールを追加します。

バリデートルールは以下のようなオブジェクトで指定します。


var formValidator = h5.core.logic(h5.validation.FormValidationLogic);
formValidator.addRule({
	// 対象となるプロパティ名(userid)をキーにする
	userid: {
		// ルール名: 該当ルールのパラメータ。パラメータを取らないルールの場合はtrueを指定。複数のパラメータを取るルールの場合は配列指定。
		required: true,
		pattern: /ˆ[a-z|0-9]*$/,
		size: [4, 10]
	}
});
上記の場合、useridは指定が必須(required指定)かつ/ˆ[a-z|0-9]*$/の正規表現を満たし(pattern指定)、4文字以上10字以下(size指定)のルールを追加しています。

以下のようなルールが定義されています。

ルール名 パラメータ 定義
required なし 値がnull,undefined,空文字のいずれでもないこと
customFunc func funcには第1引数に値を取る関数を指定する。funcがtrueを返すこと。
assertNull なし 値がnullまたはundefinedであること
assertNotNull なし 値がnullまたはundefinedでないこと
assertFalse なし 値がfalseであること
assertTrue なし 値がtrueであること
max [max, inclusive] inclusiveは省略可能。値がmax未満の数値であること。またinclusiveにtrueを指定した場合は境界値にmaxも含める(値がmax以下であること)。
min [mix, inclusive] inclusiveは省略可能。値がminより大きい数値であること。またinclusiveにtrueを指定した場合は境界値にminも含める(値がmin以上であること)。
future なし 値がDate型で現在時刻より未来であること。
past なし 値がDate型で現在時刻より過去であること。
digits [string, fruction] 数値の桁数判定。整数部分がinteger桁数以下でありかつ小数部分がfruction桁数以下の数値を表す文字列であること
pattern [regexp] regexpには正規表現を指定。値がregexpを満たす文字列であること
size [min, max] 値のサイズがmin以上max以下であること。ただし、値がプレーンオブジェクトの場合はプロパティの数、配列または文字列の場合はその長さをその値のサイズとする。
Parameters:
Name Type Description
ルールオブジェクト Object
Source:

(static) disableRule(name)

ルールの無効化

第1引数に指定されたプロパティについてのバリデートを無効化します

Parameters:
Name Type Description
name string | Array.<string> プロパティ名またはその配列
Source:

(static) enableRule(name)

ルールの有効化

第1引数に指定されたプロパティについてのバリデートを有効化します

Parameters:
Name Type Description
name string | Array.<string> プロパティ名またはその配列
Source:

(static) removeRule(keys)

ルールの削除

h5.validation.FormValidationLogic.addRuleで追加したプロパティルールを削除します。

ルールの削除はプロパティ単位で行います。第1引数に対象となるプロパティ名を指定(複数指定可)します。

Parameters:
Name Type Description
keys string | Array.<string> プロパティ名またはその配列
Source:

(static) validate(obj, namesopt) → {ValidationResult}

フォームの値を集約したオブジェクトのvalidateを行う

FormValidationロジックはバリデートルールごとにバリデート対象の値を適切な型に変換してからバリデートを行います。 例えば、値が"1"という文字列であってもmaxルールで判定する場合は1という数値に対してバリデートを行います。

また、 グループとそのグループ内のプロパティについてのvalidateに対応しています。

グループとは、第1引数のオブジェクトの中に、オブジェクトを値として持つプロパティがある場合、それをグループと言います。 そのグループ単位でのバリデートも行い、さらにグループ内のプロパティについてのバリデートを行います。

グループはネストすることはできません。

以下はbirthdayをグループとして扱いvalidateを行う場合の例です。


var formValidator = h5.core.logic(h5.validation.FormValidationLogic);
formValidator.addRule({
	birthday: {
		customFunc: function(val) {
			// 日付として正しいか判定する
			!isNaN(new Date(val.year, val.month - 1, val.date).getTime());
		}
	},
	year: {
		required: true
	},
	month: {
		required: true
	},
	day: {
		required: true
	}
});
formValidator.validate({
	birthday: {
		year: 1999,
		month: 1,
		date: 1
	}
});

グループはそのグループ(birthday)のルールによるvalidateが行われる。

また、year,month,dayもそれぞれのルールに基づいてvalidateが行われる。

Parameters:
Name Type Attributes Description
obj Object バリデート対象となるオブジェクト
names string | Array.<string> <optional>
第1引数オブジェクトのうち、バリデートを行うキー名またはその配列(指定無しの場合は全てのキーが対象)
Returns:
バリデート結果
Type
ValidationResult
Source: