FormBridge JSカスタマイズで、サブテーブルの中のフィールドを指定したい。

何を実現したいのかを書きましょう

FormBridgeのjsカスタマイズで、フィールドコード名が「登録者」のサブテーブルがあり、中に、文字列1行でフィールドコード名が「登録者名」の項目があります。
その、登録者名に入力チェックを実装したい。

発生した問題やエラーメッセージを具体的に書きましょう

基本的に仕組みは出来ており、サブテーブルではないフィールドであれば、実装済みです。ただ、サブテーブルの中のフィールドコードを指定する方法がわからないので、教えていただきたいです。

実行したコードをコピー&ペーストしましょう

fb.events.form.created.push(function (state) {
    state.fields[7].validations.push({
      params: [],
      rule: 'custom_validation4'
    });
    return state;
  });

fb.addValidators = function (state) {
    return {
      custom_validation4: {
        getMessage: function ([登録者名], params) {
          return '姓と名の間に全角スペースをいれてください';
        },
        validate: function (value, params) {
          // 全角スペースが含まれている場合はバリデーション成功
          if (value.includes(' ')) {
            return true; // バリデーション成功
          }
          // 全角スペースが含まれていない場合はバリデーション失敗
          return false; // バリデーション失敗
        }
      },
    };
  };

})();

過去ログを formbridge テーブル で検索しました。

FormBridgeでテーブル内フィールドに入力制限を設けたい - kintone カスタマイズ - cybozu developer community

のような例が見つかりました。

過去ログを参考に修正しました。fieldsの番号指定しているところは適宜修正して質問者のフォームに合わせてください。
元のコードに全角スペースを入れてくださいというコメントがあったので全角スペースを検出するようにしています。

(() => {
    fb.events.form.created.push((state) => {
        // 番号は調整してください
        state.fields[0].fields[0].validations.push({
            params: [],
            rule: 'custom_validation4'
        });
        return state;
    });

    fb.addValidators = (state) => ({
        custom_validation4: {
            getMessage: (fieldCode, params) => '姓と名の間に全角スペースをいれてください',
            validate: (value, params) => {
                return value.includes(' ')
            },
        }
    });
})();

ご回答ありがとうございます。
反映することが出来ました。

「いいね!」 1

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