Expand my Community achievements bar.

Don’t miss the AEM Skill Exchange in SF on Nov 14—hear from industry leaders, learn best practices, and enhance your AEM strategy with practical tips.
SOLVED

populate a drop down list from another drop down list

Avatar

Level 2

I have 2 dropboxes. Dropbox 1 is a list of names. Dropbox 2 is a list of numbers, each number corresponds to a name in dropbox 1

Dropbox1 - Names

     - Bill

     - John

     - Roberta

Dropbox2 - numbers

     - 0000 (Bill's number)

     - 1111 (Roberta's number)

     - 2222 (John's number)

Is it possible to select a name in Dropbox 1 and have the corresponding number for each name show in dropbox 2?

Thank you in advance for any help and input!

1 Accepted Solution

Avatar

Correct answer by
Level 7

Simple.

Two combos, one has names, one has numbers

1446361_pastedImage_0.png1446374_pastedImage_1.png

In the change event (javascript) for DropDownList1 put:

if ($.boundItem(xfa.event.newText) == "Bill") {
  this.resolveNode("DropDownList2").rawValue = "0000";
}

else if ($.boundItem(xfa.event.newText) == "John") {
  this.resolveNode("DropDownList2").rawValue = "1111";
}

else if ($.boundItem(xfa.event.newText) == "Roberta") {
  this.resolveNode("DropDownList2").rawValue = "2222";
}

NOTE: Unless you make your second combo readonly, you will be able to select a different number regardless of what is selected in the first.

View solution in original post

5 Replies

Avatar

Correct answer by
Level 7

Simple.

Two combos, one has names, one has numbers

1446361_pastedImage_0.png1446374_pastedImage_1.png

In the change event (javascript) for DropDownList1 put:

if ($.boundItem(xfa.event.newText) == "Bill") {
  this.resolveNode("DropDownList2").rawValue = "0000";
}

else if ($.boundItem(xfa.event.newText) == "John") {
  this.resolveNode("DropDownList2").rawValue = "1111";
}

else if ($.boundItem(xfa.event.newText) == "Roberta") {
  this.resolveNode("DropDownList2").rawValue = "2222";
}

NOTE: Unless you make your second combo readonly, you will be able to select a different number regardless of what is selected in the first.

Avatar

Level 2

Nice; I'm going to bookmark this one.

I'm guessing the Case statement would be helpful here too.

Avatar

Level 7

Sure thing, a switch can be used too.

You could alternatively use this javascript in DropDownList1's change event:

switch($.boundItem(xfa.event.newText))

{

case "Bill":

this.resolveNode("DropDownList2").rawValue = "0000";

break;

case "John":

this.resolveNode("DropDownList2").rawValue = "1111";

break;

case "Roberta":

this.resolveNode("DropDownList2").rawValue = "2222";

break;

default:

break;

}

Avatar

Level 2

Thank you for your answer MinusZero.

Very helpful!