kintone | テーブル(サブテーブル)内のルックアップフィールドの値が特定の値の場合のみ反映先フィールドを編集可能にする

各フィールドをテーブル(サブテーブル)内に配置しても動くように先日の「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;
    });
})();

動作確認

関連記事

コメント

タイトルとURLをコピーしました