Skip to main content
Kinetic Community

Cascading Menus

There can be a need to make one menu drive another that drives another. This can be done with Simple Data Requests or with Bridging.

Goal

The example being created here is a three tiered cascading menu: 

Where what is selected in the Carrier menu determines what displays in the Phone Type field and what is selected in the Phone Type field determines what displays in the Data Plan field. And then, of course, we want it to correctly display in Review:

Simple Data Request Solution

To achieve this, we must first create the three questions. The first, Carrier, is actually a Dynamic list question.

The others, such as Phone Type, are initially List questions with placeholder text in place.

The second and third menus become dynamic when the previous selection is made through the use of an event type called "Populate Menu". This, essentially, creates a dynamic list on the fly and attaches it to the list question you have specified:

This event, on change of the Carrier question, attaches this new menu it is creating, using that Carrier value in the qualification, to the Phone Type field. And then, on change of the Phone Type field, there is this event to do a very similar thing for the next menu, this time using both Carrier and Phone Type in the criteria:

Nothing special needs to be done for review. These change events will fire and work as expected. See the attached SDR example with supporting data from helper form.

Bridging Solution

To achieve this, we must first create the three questions. The first, Carrier, is actually a Dynamic list question.

The others, such as Phone Type, are initially List questions with placeholder text in place.

The second and third menus become dynamic when the previous selection is made through the use of an event type called "Populate Menu". This, essentially, creates a dynamic list on the fly and attaches it to the list question you have specified:

This event, on change of the Carrier question, attaches this new menu it is creating, using that Carrier value in the qualification, to the Phone Type field. And then, on change of the Phone Type field, there is this event to do a very similar thing for the next menu, this time using both Carrier and Phone Type in the criteria:

For review request, the change events will not fire for the questions that were populated with a populate menu event. You need to make them fire with a new page load event like this:

if (KD.utils.Action.getQuestionValue('Phone Type') != '') {
  KD.utils.Action._fireChange(KD.utils.Util.getQuestionInput('Phone Type'));
}

But you will still see them blank out when you go back to modify. This is because the Phone Type is not there yet upon page load in re-display unless it's review. Note: This review event and go-back issue are only needed/only occur for bridging. Please see the SDR section above if you are using simple data requests.