ユーザー入力に応じたチェックボックスの選択・解除方法

ユーザー入力に応じたチェックボックスの選択・解除方法

お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

要件

別の項目でのユーザー入力に基づいて、チェックボックスを選択または選択解除します。

ユースケース

出張管理アプリケーションでは、観光客向けに出張パッケージを予約できます。すべてを含むパッケージが必要な人もいれば、宿泊やツアーガイドのみが必要な人もいます。観光客が選択した設定に基づいて、チェックボックスを自動的に選択または選択解除します。
 
動作を確認する

手順

1. フォームを作成 し、次の詳細を追加します。
フォーム
フォームリンク名
項目タイプ
項目名
項目リンク名
Let's go!
Let_s_go
ドロップダウン
From
From
ドロップダウン
To
To
日付
出張日付
Date_of_Travel
ドロップダウン
出張日数
Travel_Days
チェックボックス - 次のように選択肢を設定します。
  • フルパッケージ
  • 宿泊
  • 食事
  • ツアーガイド
  • チケット
  • 乗用車レンタル
必要な設備
Facilities_Needed
単一行
以前の選択内容
Previously_Selected


ここで、 必要な設備 項目はチェックボックスで、ツアーや休暇中によく必要とされる設備をすべて、宿泊、食事、ツアーガイド、チケット、乗用車レンタルといった選択肢として表示します。 フルパッケージ のオプションには、リスト内のすべてが含まれます。観光客がこのオプションを選択すると、他のチェックボックスも自動的にすべて選択されます。同様に、このオプションの選択を解除すると、他のオプションもすべて選択解除され、必要な項目だけを選択できるようになります。
 
また、 以前の選択内容 項目は、観光客が選択した設定を追跡し、より適切に選択できるようにするために使用します。この項目は観光客には不要なため、項目を非表示にするワークフローを作成しましょう。
 
2. フォームの読み込み時に 以前の選択内容 項目を非表示にするワークフローを作成します。
 
3. Deluge エディターで、次のコードを追加して非表示にします。
  1. hide Previously_Selected;

4. 次に、チェックボックスの設定に進みます。 必要な設備 項目の入力時に実行されるワークフローを作成します。
 
3. Deluge エディターで、次のコードを追加します。
  1. //前回の選択内容を取得
  2. selectedList = input。Facilities_Needed;
  3. //現在選択されているオプション数を取得
  4. size = selectedList。size();
  5. //現在の選択に「完了パッケージ」が含まれ、前回の選択に含まれていない場合は、すべて選択
  6. if(selectedList。contains('完了 パッケージ') && !input。Previously_Selected。contains('完了 パッケージ'))
  7. {
  8. Facilities_Needed。selectall();
  9. input。Previously_Selected = selectedList;
  10. }
  11. //前回の選択に「完了パッケージ」が含まれ、現在の選択に含まれていない場合は、すべて選択解除
  12. else if(input。Previously_Selected。contains('完了 パッケージ') && !selectedList。contains('完了 パッケージ'))
  13. {
  14. Facilities_Needed。deselectall();
  15. input。Previously_Selected = selectedList;
  16. }
  17. //前回の選択と「必要な設備」の両方に「完了パッケージ」がなく、5つのオプションすべてが選択されている場合は、すべて選択
  18. else if(size == 5 && !Previously_Selected。contains('完了 パッケージ') && !selectedList。contains('完了 パッケージ'))
  19. {
  20. Facilities_Needed。selectall();
  21. //次回の選択のために、前回の選択項目に「完了パッケージ」を追加
  22. input。Previously_Selected = selectedList。toString() + ',完了 パッケージ';
  23. }
  24. //前回の選択に「完了パッケージ」があり、5つのオプションすべてが選択されている場合は、「完了パッケージ」のみ選択解除
  25. else if(size == 5 && input。Previously_Selected。contains('完了 パッケージ'))
  26. {
  27. Facilities_Needed。選択を解除する('完了 パッケージ');
  28. //次回の選択のために、前回の選択項目から「完了パッケージ」を削除
  29. input。Previously_Selected = selectedList。toString().replaceAll('完了 パッケージ','');
  30. }

動作を確認する