【フォームブリッジ】複数のJavascriptを設定すると効かなくなる

日付項目に入力制限(入力日より30日以降の日付でないと入力できない)をかけたく、下記のコードで2つの日付項目に対してjavascriptを設定しているのですが、どちらか一方にしか効かず、どちらか一方は入力制限がかかりません。

フィールドコード名は正しいのです。2番目に読み込ませたjsが優先されてしまうようで、両方効いてくれません。何が原因かおわかりでしょうか。

(function () {

    'use strict';

    fb.events.form.created.push(function (state) {
        state.fields.find(({code}) => code === "fieldCode").validations.push({
            params: [],
            rule: 'custom_validation1'
        });
        return state;
    });

    fb.addValidators = function (state) {
        return {
            custom_validation1: {
                getMessage: function (fieldCode, params) {
                    return 'テキスト';
                },
                validate: function (value, params) {
                    const min = new Date();
                  min.setDate(min.getDate() +30);
                    return value > min;
                }
            }
        };
    };
})();

 

kkkさん

こんにちは。

 

fb.addValidators = function (state) {

の部分が2つ目のJSで上書きされるからだと思われます。

JSを1つにまとめることは難しいでしょうか。

 

あるいは、バリデーション条件が同一であれば、「fb.addValidators」は1つ目のJSにのみ記述し

「custom_validation1」ルールを双方のフィールドの「rule」に指定してみていかがでしょうか。

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。