フォームルールの概要
フォームは、1つの質問に対する回答でフォームの残りの部分が変化するような、動的なものにすることができます。 1つの回答で次の3つの質問をスキップできる場合や、追加の質問に答えなければならない場合などが考えられます。 このようなフィールドは、 条件付きフィールド と呼ばれます。 どのフィールドを条件付きにするかを決めたら、フォームルールを使って、その質問に対する回答に基づいて次のアクションを決定します(例えば、複数ページのフォームでは、3ページ目をスキップして4ページ目に進むなど)。
Liferay 7.4以降では、 フォームフィールド は非表示にすることも可能です。 つまり、データプロバイダーが非表示フィールドにデータを入力し、その非表示フィールドをルールで使用して動的にフォームを変更できるのです。
フォームルールの条件とアクション
ルールには2つの要素があります。
- 条件 は、アクションが実行されるかどうかを決定します。
- アクション は、条件を満たした場合の動作を決定します。
ルールはデフォルトではJSON形式でデータベースに保存されます。
ユーザーは OR または AND を選択して、複数の条件の間の関係を定義することができます。
- OR : 指定した条件の いずれか が true と評価された場合、アクションがトリガーされます。
- AND : 指定した すべて の条件が true と評価された場合にのみ、アクションがトリガーされます。
ルールビルダーへのアクセス
-
フォームルールを適用するフォームに移動します。
-
[Rules] タブをクリックします。
-
追加 ボタン()をクリックして開始します。
条件の指定
ルールを構築する際には、フィールド(例えば、 あなたは18才以上ですか?)、条件(と等しい)、比較する値(はい/いいえ)を指定する必要があります。 条件の ifステートメント が true であれば、アクションがトリガーされます。 false の場合は何も起こりません。
条件 | 説明 |
---|---|
が以下と等しい | 入力された値が条件と一致するかどうかをチェックします。 例:言語がスペイン語と一致した場合、アクションをトリガーします。 |
等しくない | 入力された値が条件と一致していないかどうかをチェックします。 |
が以下を含む | 入力された値が、その値を含んでいるかどうかをチェックします。 |
含まない | 入力された値が、その値を含んでいないかどうかをチェックします。 |
が空の場合 | フィールド が空で ある かどうかをチェックします。 |
は空ではありません | フィールドが空 でない 限り、アクションを実行します。 |
ユーザー | ユーザーが特定のロールに所属しているかどうかを確認します。 Yesの場合、アクションがトリガーされます。 |
フォームルールアクション
次のアクションを使用できます。
操作 | 説明 |
---|---|
以下を表示する: | あらかじめ定義された条件に基づいて、フォームフィールドの可視性を設定します。 |
有効にする | 定義済みの条件を使用して、フィールドを有効または無効にします。 |
必須 | 定義済みの条件を使用して、フィールドを必須にします。 |
ページへ移動 | ユーザーの入力内容に応じて、一部のフォームページをスキップして関連するページに直接移動します。 このルールは、2番目のページがフォームに追加されるまで、ルールビルダーに表示されません 。 |
データプロバイダーによる自動入力 | データプロバイダーを使用して、別のフィールドで条件が満たされたときにフィールドに値を入力します。 |
計算 | 他のフィールドに入力されたデータを使って、フィールドに計算値を入力します。 |