フォームブリッジにて、
商品の注文数を登録する数値フィールドに、入力制限機能を実装する予定です。
入力制限の内容は、商品の在庫数と比較し、在庫数以上の数値を入力すると、
エラーメッセージを表示し登録ボタンを押下できないようにする機能です。
トヨクモ様に相談したところ、サポート対象外との事で、、、
困ってしまいこちらのコミュニティに投稿した次第です。
当方、kintone 初心者で未熟者であります。
宜しくお願いします。
フォームブリッジにて、
商品の注文数を登録する数値フィールドに、入力制限機能を実装する予定です。
入力制限の内容は、商品の在庫数と比較し、在庫数以上の数値を入力すると、
エラーメッセージを表示し登録ボタンを押下できないようにする機能です。
トヨクモ様に相談したところ、サポート対象外との事で、、、
困ってしまいこちらのコミュニティに投稿した次第です。
当方、kintone 初心者で未熟者であります。
宜しくお願いします。
小原 徳康さん
こんにちは。
JavaScriptでバリデーションを定義できます。
FormBridgeカスタマイズ()%3B-,Validation,-Custom%20validator)
以下の例では、fb.events.form.createdのタイミングで
「注文数」フィールドに対して、バリエーション「max_validation」を設定します。
「max_validation」の中身は、fb.addValidatorsで定義しています。
「注文数 > 在庫数」の場合はreturn falseとなり、エラーメッセージが表示されます。
問題なければreturn trueで正常終了となります。
(function() {
'use strict';
fb.addValidators = function(state) {
return {
max_validation: {
// エラーメッセージ内容
getMessage: function(fieldCode, params) {
return '最大' + state.record.在庫数.value + 'です。';
},
// エラー判定条件
validate: function(value, params) {
// valueは注文数と同値
// 注文数 > 在庫数 の場合はエラー
if (value > state.record.在庫数.value) {
return false;
}
return true;
}
}
}
};
fb.events.form.created = [function(state) {
// 全フィールドからエラーを出したいフィールドを検索
state.fields.filter(function(field) {
// エラーを出したいフィールドコード
return field.code === '注文数';
})[0].validations.push({
params: [],
rule: 'max_validation' // fb.addValidatorsで定義した中から適用したいバリデーション名
});
return state;
}];
})();
koichiさん
こんにちは。
ご丁寧にソースまでご記載頂き、本当に有難うございます。
移植して、検証してみます。
本当に助かりました。。。
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。