Expand my Community achievements bar.

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!