該当のサブテーブルの追加/削除ボタンを2行目以降も非表示にしたいです

javascript初心者ですが、よろしくお願いいたします。
レコードの新規追加画面で、指定のサブテーブルについて初期値を空欄で3行作成し、その横に表示される追加削除ボタンを表示しないようにしたく他の方のの情報を参考にして作成してみたのですが、サブテーブルに3行空白行が追加されたものの、追加削除ボタンが2行目、3行目が表示されてしまいます。

何を修正すれば改善されるのでしょうか。教えていただけますと大変助かります。
よろしくお願いいたします。

(function () {
    "use strict";
    
    kintone.events.on(['app.record.create.show', 'app.record.edit.show'], function (event) {
        var subtableContainers = document.getElementsByClassName("subtable-gaia");
        
        if (subtableContainers.length > 2) {
            // 0番目のサブテーブル
            var subtable1 = subtableContainers[0].getElementsByClassName("subtable-operation-gaia");
            [].forEach.call(subtable1, function (button) {
                button.style.display = 'none';
            });

            // 2番目のサブテーブル
            var subtable2 = subtableContainers[2].getElementsByClassName("subtable-operation-gaia");
            [].forEach.call(subtable2, function (button) {
                button.style.display = 'none';
            });
        }
    });

    kintone.events.on('app.record.create.show', (event) => {
        // 行の作成
        const newRow1 = createValue_('', '');
        const newRow2 = createValue_('', '');
        const newRow3 = createValue_('', '')
    
        // Tableに初期値を定義する
        event.record.additionalcost.value = [
          newRow1,
          newRow2,
          newRow3
        ];
        return event;
      });
    
      const createValue_ = (text, number) => (
        {
          'value': {
            'additionalcostItem1': {
              'type': 'SINGLE_LINE_TEXT',
              'value': text
            },
            'additionalcost_1': {
              'type': 'NUMBER',
              'value': number
            }
          }
        });

})();

1 Like

解決していませんが、場面によって動作が異なりました。

新規レコード追加画面
(値は適当に入れるように変更しています。)


いったん保存します。

編集画面で開きます。


+と-ボタンが消えています。

新規レコード追加画面では、
デフォルトの1行の空白行しかない
行数を増やす処理は動いているが
+と-ボタンを消す処理は増やした行には対応していない

しかし、編集画面では
レコードの段階でサブテーブルが3行存在するので
+と-ボタンを消す処理が対応できていると言うことになると思います。

新規追加画面でブレイクポイントを入れても、JavaScriptのカスタマイズが実行された段階ではブラウザのレンダリングが終わっていないので消すことができていないみたいです。
正しいやり方がわからないので、違うイベントでテーブルの値が正しいかチェックするなどの対応が必要かも知れません。

1 Like

お忙しい所ご返信いただきありがとうございます。
ご検証もいただき大変助かります。
違うイベントでもチェックしてみたいと思います。
ご対応ありがとうございます。

1 Like

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