new FormValidationLogic()
フォーム要素を集約したオブジェクトのバリデートを行うためのロジックです。
- 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}
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: