サブテーブル項目に対する入力制御について

お世話になります。

アプリの項目に入力制御(半角英数字のみチェック等)を行っているのですが、

サブテーブルの項目に対して同じ制御を入れても上手く動作しません。

サブテーブル項目についても入力制御する方法はありますでしょうか。

現在しようしている制御例は下記です

(function() {
'use strict';
var FuriText_FieldCode = 'ふりがな'; // 全角入力フィールド(文字列1行)のフィールドコード
kintone.events.on('app.record.create.submit', function(event) {
var record = event.record;
var FuriText = record[FuriText_FieldCode].value;
if (!event.record.ふりがな.value) return event;

if(!FuriText.match( /^[ぁ-んー]*$/)){
record[FuriText_FieldCode].error = '全角ひらがな以外の文字があります。';
}

return event;
});
})();
(function () {
  'use strict';
  const FuriText_FieldCode = 'ふりがな'; // 全角入力フィールド(文字列1行)のフィールドコード
  kintone.events.on('app.record.create.submit', function (event) {
    const record = event.record;
    const FuriText = record[FuriText_FieldCode];
    if (!FuriText.value) {
      FuriText.error = '文字が入力されていません';
    } else if (!FuriText.value.match(/^[ぁ-んー]*$/)) {
      FuriText.error = '全角ひらがな以外の文字があります。';
    }


    const tablevalue = record.テーブル.value;
    tablevalue.map((tablerow, i) => {
      const rowvalue = tablerow.value.tableふりがな.value;
      if (rowvalue) {
        if (!rowvalue.match(/^[ぁ-んー]*$/)) {
          return (record.テーブル.value[i].value['tableふりがな'].error = '全角ひらがな以外の文字があります');
        }
      } else {
        return (record.テーブル.value[i].value['tableふりがな'].error = '文字が入力されていません');
      }
    });
    return event;
  });
})();

サブテーブルのフィールドコードは、テーブル

サブテーブル内の項目は、tableふりがなと想定しています。

mapの途中で、returnしたら動いたレベルなのでどこかで悪影響があるかもしれません。

少なくとも、エラーを見つけたらそこでエラーを返すので複数エラーがあった場合、指摘ははじめの一つだけになります。

そこまでしっかりやる必要があるかどうか?

>>harada

ご丁寧に回答いただきましてありがとうございます。

サブテーブルでの制御うまくできそうです!

確かにエラーについてサブテーブルまでどこまでをやるのかというのはありますね。

そのあたりも考えていきたいと思います。ありがとうございます。

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