カテゴリーごとに、フィールドの表示/非表示を制御したい

背景・実現したいこと

選択したカテゴリーによって、表示/非表示を切り替えるフィールドを追加したいと考えております。

特定のカテゴリーが選択されている間は表示、選択が外れたタイミングで非表示とするような動作を想定しています。

利用したソースコード

以下にて、カテゴリ変更時に判定が走り、その場で表示/非表示が切り替わるかと思いましたが、エラー等出ずに失敗しました。

なお、カテゴリー選択後の詳細・編集画面では判定が動いており、表示された状態になっておりました。

(function() {
    'use strict';
  
    var events = [
      'app.record.detail.show',
      'app.record.create.show',
      'app.record.create.change.カテゴリー',
      'app.record.edit.show',
      'app.record.edit.change.カテゴリー',
      'app.record.detail.show'
    ];
  
    kintone.events.on(events,function(event) {
        kintone.app.record.setFieldShown('表示/非表示切り替え項目',false);
        const record = event.record;
        const categori = record['カテゴリー'].value;
        if(categori.indexOf('表示制御カテゴリ') != -1){
            kintone.app.record.setFieldShown('表示/非表示切り替え項目',true)
        }
        return event;
    })
})();

kintone の仕様でフィールド値変更時イベントは、カテゴリーをサポートしていませんのでカテゴリーの変更には対応できません。

 

 

LA様

未検証ですが、カテゴリーの値?を計算フィールドや自動計算の文字列フィールドに入れられるなら、自動計算のタイミングで値変更イベントを発火できるかもしれません。
脈がありそうであれば、お試しください。

rex0220様

ご教示いただきありがとうございます。

フィールド値変更時イベントの仕様上サポートされていないとの事、承知しました。

フィールド値変更時イベント以外の方法で、カテゴリー変更時にアクションを起こす方法は用意されていますでしょうか?

 

kintone 推奨のしくみでは、カテゴリー変更時にアクションを起こす方法は無いと思います。

MutationObserver で、DOM の class 変更を監視するなどで対応ができると思いますが、kintone の仕様変更で動作しなくなるリスクがあります。

rex0220様

kintone標準仕様だと難しいのですね…。承知しました。

動作しなくなるリスクは極力避けたいので、TO様にいただいた方法も含め、もう少し模索してみたいと思います。

ご教示いただき、ありがとうございました。