FormBridge にて任意入力のメールアドレス入力フィールドがあり、値を設定されたら「確認用メールアドレスフィールド」に同じ値が入力されるチェックを追加したいと思っています。
過去投稿から以下のようなコードを作成しましたが確認用フィールドになんらかの入力が発生しないと入力チェックが実行されません。「確認」ボタンが押下できてしまい、確認用メールフィールドは空白でもOKになってしまいます。
どのような処理を追加すればよいでしょうか。
(function() {
'use strict';
fb.addValidators = function(state) {
return {
same_validation: {
// エラーメッセージ内容
getMessage: function(fieldCode, params) {
return '同じ値を入力してください';
},
// エラー判定条件
validate: function(value, params) {
// valueは確認用メールアドレスと同値
// メールアドレスに値が設定され かつ
// メールアドレス !== 確認用メールアドレス の場合はエラー
if (state.record.mail.value && value !== state.record.mail.value) {
return false;
}
return true;
}
}
};
};
fb.events.form.created = [function(state) {
// 全フィールドからエラーを出したいフィールドを検索
state.fields.filter(function(field) {
// エラーを出したいフィールドコード
return field.code === '確認用メールアドレス';
})[0].validations.push({
params: [],
rule: 'same_validation' // fb.addValidatorsで定義した中から適用したいバリデーション名
});
return state;
}];
})();