サブテーブルのフィールドを非活性にしたいが、サブテーブルが0行のレコードを編集する場合にサブテーブルのフィールドが非活性にならない
上ソースではサブテーブルが0行のためfor文に入らず、仮にfor文を外したとしてもtableValueが存在しないというエラーになります(サブテーブルが0行だから存在しないのも当たり前)
そのため、changeイベントで引っかかるのではないかと考えた(下ソース)のですが、こちらはイベント自体拾われませんでした。。。
調べたところ同じような悩みの質問が見当たらないため、質問させていただきます。ソースは関係ない部分を端折っているため、もしかしたら必要な部分も消してしまっている場合があります。
解決策・おすすめプラグイン(無償)等ございましたら教えていただきたいです。
javascript初心者ですが、よろしくお願いいたします。
(() => {
// おまじない
'use strict';
// レコード編集画面を表示した後、現所有者の情報を更新する
kintone.events.on(['app.record.edit.show'],event => {
// サブテーブルを取得
const tableValue = event.record.サブテーブル.value;
// サブテーブルフィールドを非活性化
for (let i = 0; i < tableValue.length; i++){
event.record.サブテーブル.value[i].value.サブテーブルフィールド.disabled = true;
}
// イベントを返す
return event;
})
})()
(function() {
'use strict';
kintone.events.on(["app.record.edit.change.サブテーブル"],(event) => {
// 行を削除した時はエラーが出ないようにevent.changes.rowが存在しているかどうか確認。
if (event.changes.row) {
event.changes.row.value.サブテーブルフィールド.disabled = true;
}
return event;
});
})();