Confiforms: How to check multi-select field to see if user selected a specific value

Gilberto Cortes October 2, 2021

I have a form with a Smart Multi-Select field configured. I want to show or hide another field based on the user selection in this field.

First Form

Has the following field

USER_SEL_TOOLS (Smart Multi-Select field)

 

Second Form

Has the following fields

TOOL_NAME (Text field)

TOOL_ATTRIBUTES (Multi-Select field)

 

example record

|     TOOL_NAME     |    TOOL_ATTRIBUTES     |

|     hammer        |    wood, metal        |

 

I want to build a conditional statement for a Confiforms Rules for Field Definition that looks to see if the user selected "hammer" and if "hammer" has the attribute "wood" selected. If this is true, then perform action.

I can get the select values from TOOL_ATTRIBUTES:

[entry.USER_SEL_TOOLS.TOOL_ATTRIBUTES.getOptions] 

Returns "wood metal" when testing by setting the value of a text field. However, I can't seem to get the CONDITION to evaluate and the action to execute: 

[entry.USER_SEL_TOOLS.TOOL_ATTRIBUTES.getOptions]:*wood*

 

2 answers

1 accepted

0 votes
Answer accepted
Alex Medved _ConfiForms_
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
October 2, 2021

Hi

The better option would to use hasValue function - https://wiki.vertuna.com/display/CONFIFORMS/Virtual+functions

TOOL_NAME.TOOL_ATTRIBUTES.transform(label).hasValue(wood):true

As your condition might give a false positives if "TOOL_ATTRIBUTES" is for example "wooden", but you wanted to check strictly against the "wood"

Alex 

0 votes
Gilberto Cortes October 2, 2021

I set condition to the following and that worked:

TOOL_NAME.TOOL_ATTRIBUTES.transform(label):*wood*

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events