モバイルでラジオボタンの条件によってフィールドを非表示にする

何を実現したいのかを書きましょう

モバイルでラジオボタン”フィールドコード:設定1”と”フィールドコード:設定2”のどちらかまたはどちらも有に
なっていたら設定内容を表示したいです。

発生した問題やエラーメッセージを具体的に書きましょう

以下のコードを追加し
設定1・設定2のどちらも有にしてから片方を無にすると設定内容フィールドが非表示になってしまします。

/*
* 回答の条件によって別フィールドの表示/非表示を切り替える
*/
(() => {
  'use strict';

 

  // レコードの追加、編集、詳細画面で適用する
  const events = ['mobile.app.record.detail.show',
    'mobile.app.record.create.show',
    'mobile.app.record.create.change.設定1',
    'mobile.app.record.create.change.設定2',
    'mobile.app.record.edit.show',
    'mobile.app.record.edit.change.設定1',
    'mobile.app.record.edit.change.設定2'];

  kintone.events.on(events, (event) => {

    const record = event.record;

    // 設定1で有を選択された場合は「設定内容」フィールドを表示をする
    if (record.設定1.value === '有') {
      kintone.mobile.app.record.setFieldShown('設定内容', true);
    } else 
 // 設定2で有を選択された場合は「設定内容」フィールドを表示をする
    if (record.設定2.value === '有') {
      kintone.mobile.app.record.setFieldShown('設定内容', true);
    } else {
      // 「無」の場合は非表示
      kintone.mobile.app.record.setFieldShown('設定内容', false);
    }
  });
})();


設定1・設定2のどちらも有にしてから片方を無にすると設定内容フィールドが非表示になってしまします。

言い換えると、複数の条件がある、ということなので、ifもそれに即した形にするのはどうでしょうか?

    // 設定1か2で有を選択された場合は「設定内容」フィールドを表示をする
    if (record.設定1.value === '有' ||  record.設定2.value === '有') {
      kintone.mobile.app.record.setFieldShown('設定内容', true);
    } else 
      // いずれも「無」の場合は非表示
      kintone.mobile.app.record.setFieldShown('設定内容', false);
    }

  return event; // ← おまけですがreturn eventもしてあげるのが理想です
「いいね!」 1

mura様
返信ありがとうございます。
早速実行しましたところ無事うまく実現いたしました!
return eventの件も大変参考になりました。
ありがとうございました。

「いいね!」 1

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