t.cooさん
こんにちは。
以下にあるfb.addValidatorsでバリデーションチェックを定義できます。
全角カタカナで構成されるかどうかは、以下で判定できます。
str = (str == null) ? "" : value;
if (str.match(/^[ァ-ヶー ]+$/)) {
return true;
} else {
// 全角カタカナ以外が含まれる
return false;
}
これらを組み合わせて、FormBridgeでは以下のように定義します。
(function() {
'use strict';
fb.addValidators = function(state) {
return {
katakana_validation: {
// エラーメッセージ内容
getMessage: function(fieldCode, params) {
return '全角カタカナで入力してください。';
},
// エラー判定条件
validate: function(value, params) {
// valueは全角カタカナのフィールドに入力された値
value = (value == null) ? "" : value;
if (value.match(/^[ァ-ヶー ]+$/)) {
return true;
} else {
// 全角カタカナ以外が含まれる場合はエラー
return false;
}
}
}
}
};
fb.events.form.created = [function(state) {
// 全フィールドからエラーを出したいフィールドを検索
state.fields.filter(function(field) {
// エラーを出したいフィールド
return field.code === '全角カタカナのフィールドコード';
})[0].validations.push({
params: [],
rule: 'katakana_validation' // fb.addValidatorsで定義した中から適用したいバリデーション名
});
return state;
}];
})();