各フィールドをテーブル(サブテーブル)内に配置しても動くように先日の「kintone | ルックアップフィールドの値が特定の値の場合のみ反映先フィールドを編集可能にする」のコードをベースに修正しました。
サンプルコード
/**
* サブテーブル "スケジュール" 内の
* 会場検索のルックアップフィールドの値が "9999" の場合のみ
* 会場名フィールドの disabled を解除する
*/
(function () {
"use strict";
// サブテーブルとサブテーブル内のフィールドコードを定義
const subtableCode = 'スケジュール';
const venueSearchFieldCode = '会場検索_SUB';
const venueNameFieldCode = '会場名_SUB';
// サブテーブルの変更を監視するイベント
const events = [
// "app.record.edit.show",
// "app.record.create.show",
// "app.record.edit.change." + subtableCode,
// "app.record.create.change." + subtableCode,
"app.record.edit.change." + venueNameFieldCode,
"app.record.create.change." + venueNameFieldCode
];
kintone.events.on(events, function (event) {
let subtableRecords = event.record[subtableCode].value;
subtableRecords.forEach(function (subtableRecord) {
let placeCode = subtableRecord.value[venueSearchFieldCode].value;
let placeNameField = subtableRecord.value[venueNameFieldCode];
// 会場検索が "9999" の場合、会場名フィールドの disabled を解除する
if (placeCode === '9999') {
placeNameField.disabled = false;
} else {
placeNameField.disabled = true;
}
});
return event;
});
})();
コメント