Skip to main content
March 17, 2021
Answered

How to populate different dropdown list based on selection of a value in another dropdown field?

  • March 17, 2021
  • 8 replies
  • 18272 views

Hi there,

I'm trying to create a fillable form in Acrobat Pro where I select a  value in dropdown field A, dropdown field B will only display a list of values pertaining to the value in A.

Thanks.

This topic has been closed for replies.
Correct answer Nesa Nurani

Use setItems() to populate dropdown field, here is an example code:

if(event.value == "Item1")
this.getField("Dropdown2").setItems(["Item 1","Item 2","Item 3"]);
else if(event.value == "Item2")
this.getField("Dropdown2").setItems(["Item 4","Item 5","Item 6"]);
else this.getField("Dropdown2").clearItems();

You can also give items an export value like this:

setItems([["Item 1", "1"], ["Item 2", "2"], ["Item 3", "3"]]);

8 replies

New Participant
November 6, 2023

I have a similar issue - I'm getting a SyntaxError: missing] after element list 6: at line 7 - this is my code (I have 3 dropdown lists)

 

if(event.value == "55+"){
this.getField("Calendar").setItems(["General Interest","Health and Wellness"]);
this.getField("Service").setItems(["Book Club","Bridge", "Brain Health Service", "Workshops"]);}
else if(event.value == "Adults"){
this.getField("Calendar").setItems(["Arts - Music","Fitness"]);
this.getField("Service").setItems(["Guitar","Piano Private Lessons", "Dance Fitness", Walking and Running]);}
else if(event.value == "Children"){
this.getField("Calendar").setItems(["General Interest","Fitness"]);
this.getField("Service").setItems(["Book Club","Dance Fitness", "Socials", "Yoga"]);}
else{
this.getField("55+").clearItems();
this.getField("Adults").clearItems();}

 

try67
Community Expert
November 6, 2023

Use a code editor with syntax highlighting and the error will be very evident:

 

 

This screenshot is from Notepad++, which I highly recommend.

New Participant
November 6, 2023

Thank you for the speedy response. Unfortunately due to my company's security protocols, I'm not able to download any programs onto my computer :(. But I did find where I forgot to add in quotation marks around "Walking and Running" and once I did that, it seems to work. Thank you again for your help 🙂

New Participant
September 19, 2023

I am getting an error of "SyntaxError: Illegal Character 1: at line 2" Could I please request assistance, it is occuring on "else if(event.value == “Aviation”)" line?

 

if(event.value == “Warfare”) this.getField(“Workgroup").setItems([“NPC","BM","CD","CSM","CSMMW","HSM"] );

else if(event.value == “Aviation”)

this.getfield(“Workgroup”).setItems([“ATA”,“ATV”,“AVN”,“A”]);

else this.getfield(event.value == “Engineering”)

this.getfield(“Workgroup”).setItems( ["MT","ET","ETSM","MTSM"] ); .

else if(event.value == “Information Warfare”)

this.getfield(“Workgroup”).setItems( ["CIS","EW","IS","CTS","CTL","CT-MCW"] );

else if(event.value == “Submarines”)

this.getfield(“Workgroup”).setItems( ["AWA","CIS","EW","MT","ET"] );

else if(event.value == “Logistics”)

this.getfield(“Workgroup”).setItems ( ["ML-C","ML-S","ML-C","MED","DEN"] );

else if(event.value == "Personnel")

this.getfield(“Workgroup”).setItems ( ["MPM","MUSN","PTI"] );

Bernd Alheit
Community Expert
September 20, 2023

Use:

else if (event.value == “Engineering”)

try67
Community Expert
September 20, 2023

But not with curly quotes, only straight ones will work.

Also, it's getField, not getfield. JS is case-sensitive, remember.

New Participant
April 1, 2023

With your exact script, I tried to recreate it.

this if event.value equals "Item1".

getField("Dropdown2").

if (event.value == "Item2") this; else setItems(["Item 1","Item 2","Item 3"]).

getField("Dropdown2").

setItems(["Item 4"," "Item 5"," "Item 6"]); alternatively, this.

getField("Dropdown2").

clearItems(); one has two dropdown menus. Dropdowns 1 and 2
The script that Dropdown2 added.

It appears to only run:

Nesa Nurani
Community Expert
April 1, 2023

I think you try to achieve something like this:

var drop2 = this.getField("Dropdown2");

if(event.value == "Item1")
drop2.setItems(["Item 1","Item 2","Item 3"]);

else if(event.value == "Item2")
drop2.setItems(["Item 4","Item 5","Item 6"]);

else
drop2.clearItems();
Participating Frequently
April 1, 2023

if IT-"AOS/Unit Data/Position Data,"Access/Security","Alert/Audit","Assignments","Awards","Benefits","Contracts","Help Desk/CRM/FAQ/KB","IPPS-A INTERNAL ACCESS REQUEST","IPPS-A Training / ELM","Job Data","MILPAY","Mobile App","On/Off Boarding","Orders Framework","Personnel Action Request / PAR","Physical Profiles","Production Support","Profile Management","promotions","R3 Cutover Support","R3 Training RFI","Readiness & Manning (HCM)","Reductions","Reports / Analytics","Restrictions","SICOOP (formerly SIHOL)","SRB","SSI-Cadre and Students ONLY","System Preformance","Talent Management","Trading Partners (Into IPPS-A)","Trading Partners (Out IPPS-A)","User Interface / Homepage","Workflow"

if HR-"AOS/Unit Data/Position Data,"Access/Security","Accessions","Awards","Benefits","Career Management","Change Request","Enhancement Request","Evaluations","HRC Tier 1 Use Only","IPPS-A HR Processes","IPPS-A Knowledge Base","IPPS-A Technical Issues","Job Data","Misrouted Case","Pay & Allowences","Promotions & Selections","R3 Training Rfi","Record Management","SSI-Cadre & Students Only"

Participating Frequently
April 1, 2023

I cannot get this to work for the life of me. I create the code but my second drop down does not populate the options?

 

Nesa Nurani
Community Expert
April 1, 2023

You are missing some things and have errors, let's say your second dropdown is named "Dropdown2" as validate script of first dropdown use like this:

var drop2 = this.getField("Dropdown2");
if(event.value == "IT")
drop2.setItems(["AOS/Unit Data/Position Data","Access/Security","Alert/Audit"]);
else
drop2.clearItems();

New Participant
February 7, 2023

Is it possible to affect multiple drop down lists from the value selected in the first list?

List 1 - select the value that affects the other lists

List 2 - correctly affected

List 3 - nothing happens with the code below

 

if(event.value == "Training")
this.getField("Earning1.0.0","Earning1.0.1").setItems(["Training-OTJ","Training-Platform"]);
else if(event.value == "Mortgage")
this.getField("Earning1.0.0","Earning1.0.1").setItems(["Commissions","Referral Fees-Mortgage"]);
else this.getField("Earning1.0.0","Earning1.0.1").clearItems();

Nesa Nurani
Community Expert
February 7, 2023

Use this:

if(event.value == "Training"){
this.getField("Earning1.0.0").setItems(["Training-OTJ","Training-Platform"]);
this.getField("Earning1.0.1").setItems(["Training-OTJ","Training-Platform"]);}
else if(event.value == "Mortgage"){
this.getField("Earning1.0.0").setItems(["Commissions","Referral Fees-Mortgage"]);
this.getField("Earning1.0.1").setItems(["Commissions","Referral Fees-Mortgage"]);}
else{
this.getField("Earning1.0.0").clearItems();
this.getField("Earning1.0.1").clearItems();}
New Participant
February 8, 2023

You are a genius! That was my first time posting on this forum for help and I did not expect an answer so quickly. I can't thank you enough. This was my first time using JavaScript.

New Participant
December 6, 2022

Hi,

Could someone please check the following code, I get error message. Thank you!

 

 

if(event.value == "Byggnad inomhus")
this.getField("Välj typ").setItems(["Avlopp / Vask","Belysning","Brödhylla","Entrematta",Fönster/Skyltfönster","Hyllor butik",Höglager","Kakelvägg","Kassaskåp","Klinkergolv",Köksinredning/Vitvaror","Ljuslådor för AHT frys/kylboxar","Möbler/Stolar","Packbänk","Plastridå","Plexiglaspartier","Påkörningsskyd","Reklam och foliering","Skadedjursbekämpning","Solskyddsgardin","Toaletter","Trappor/Stegar inomhus","Undertaksplattor/Bärverk","Varmvattenberedare","Väggar"]);
this.getField("Välj typ").setItems(["Daggvattenbrunnar","Entregolv","Fasader","Gavelskyltar / Fasadskyltar","Kundvagnar/Kundvagnskorgar","Kundvangsfållar/boxar","Lastbrygga","Lastramp","Non Food skåp","Påkörningsskydd/Pollare","Reklamskyltar på fasaden","Skrapgaller","Solskyddstak/Jalusier utomhus","Trappor/Stegar utomhus","Utomhusbelysning byggnad","Väderskydd lastkaj"]);
else if(event.value == "Dörrar")
this.getField("Välj typ").setItems([" Branddörr","Dörrar","Frysrumsdörr","Ingångsdörrar automatik","Lås/Nycklar","Nattleveranszon avgränsning","Skjutgrind (elektrisk)","Snabbrullport","Taksjutportar"]);
else if(event.value == "IT")
this.getField("Välj typ").setItems(["Hårdvara","Överordnat styrsystem"]);
else if(event.value == "Kylteknik")
this.getField("Välj typ").setItems(["Frys och köttboxar","Frysrum","Frysrumsdörr","Glasdörr","Kylcell Aggregat","Kylcell Takskjutport","Kyldiskar/Mopro"]);else if(event.value == "Säkerhet")
this.getField("Välj typ").setItems(["Brandlarm / Utrymninglarm","Brandpost (inomhus)","Brandpost (utomhus)","Brandsläckare","Larmanläggning","Nödutgångsbelysning","Rökluckor","Varularm","Videoövervakning"]);
else if(event.value == "Säkerhetskontroll")
this.getField("Välj typ").setItems(["Säkerhetskontroll Brandskydd","Säkerhetskontroll Elinstallation","Säkerhetskontroll Statik"]);
else if(event.value == "Tak")
this.getField("Välj typ").setItems(["Hängrännor / Stuprör","Skärmtak","Tak","Takkonstruktion"]);
else if(event.value == "Teknisk anläggning")
this.getField("Välj typ").setItems(["Alldammsugare","Bake off ugn","Balpress";"Balpress","Batteriladdare","Brödpåfyllningsvagn","Brödskärningsmaskin","Diskbänk bröd beredning","Dräneringspump","Elskåp/Säkringar","Eltankställe","Eltruck","F&G och avskrivningsvåg","Frukt & Grönt automat","Handtruck","Inventeringsvåg","Kaffemaskin butik","Kassaspärr","Kassor","Klimatanläggning","Komprimator skruv","Kylaggregat","Kylmedelskylare","Lastbrygga","Luft-värmepump","Pantautomat","Pengavåg","Personhiss","Hiss","Pumpar","Ridåvärmare (Dörrar butiker)","Rulltappa-band","Solcellssystem","Städmaskin/Butiker","Technoport/Entregrind","Tobaksförvaring","UPS/Nödströmsaggregat","Uppvärmning","Varuhiss","Ventilation","Värmeåtervinning"]);
else if(event.value == "Utomhusanläggning")
this.getField("Välj typ").setItems(["Carport","Cykelställ","Flaggor / Flaggstänger","Oljeavskiljare p-yta","Parkering/Körfält/Asfalt","Parkering/Körfält/Marksten","Parkeringsbommar","Parkeringsmarkeringar","Parkeringsyta","Planteringsytor/Gräsmattor","Reklamskyltar fristående","Sophantering","Staket/Stängsel","Stolpbelysning","Stolpskylt","Trafikskyltar parkering"]);
else this.getField("Välj typ").clearItems();

Nesa Nurani
Community Expert
December 6, 2022

You are missing 'else if'condition after first 'if'.
Missing 3 qoutes in first condition.

You have error here(check red text):
else if(event.value == "Teknisk anläggning")
this.getField("Välj typ").setItems(["Alldammsugare","Bake off ugn","Balpress";"Balpress",

 

New Participant
December 8, 2022

Thank you, it still does not work. Will you look at it again? I am forever grateful!

 

if(event.value == "Byggnad inomhus")
this.getField("Välj typ").setItems(["Avlopp / Vask","Belysning","Brödhylla","Entrematta",Fönster/Skyltfönster","Hyllor butik",Höglager","Kakelvägg","Kassaskåp","Klinkergolv",Köksinredning/Vitvaror","Ljuslådor för AHT frys/kylboxar","Möbler/Stolar","Packbänk","Plastridå","Plexiglaspartier","Påkörningsskyd","Reklam och foliering","Skadedjursbekämpning","Solskyddsgardin","Toaletter","Trappor/Stegar inomhus","Undertaksplattor/Bärverk","Varmvattenberedare","Väggar"]);
else if(event.value == "Byggnad utomhus")
this.getField("Välj typ").setItems(["Daggvattenbrunnar","Entregolv","Fasader","Gavelskyltar / Fasadskyltar","Kundvagnar/Kundvagnskorgar","Kundvangsfållar/boxar","Lastbrygga","Lastramp","Non Food skåp","Påkörningsskydd/Pollare","Reklamskyltar på fasaden","Skrapgaller","Solskyddstak/Jalusier utomhus","Trappor/Stegar utomhus","Utomhusbelysning byggnad","Väderskydd lastkaj"]);
else if(event.value == "Dörrar")
this.getField("Välj typ").setItems([" Branddörr","Dörrar","Frysrumsdörr","Ingångsdörrar automatik","Lås/Nycklar","Nattleveranszon avgränsning","Skjutgrind (elektrisk)","Snabbrullport","Taksjutportar"]);
else if(event.value == "IT")
this.getField("Välj typ").setItems(["Hårdvara","Överordnat styrsystem"]);
else if(event.value == "Kylteknik")
this.getField("Välj typ").setItems(["Frys och köttboxar","Frysrum","Frysrumsdörr","Glasdörr","Kylcell Aggregat","Kylcell Takskjutport","Kyldiskar/Mopro"]);else if(event.value == "Säkerhet")
this.getField("Välj typ").setItems(["Brandlarm / Utrymninglarm","Brandpost (inomhus)","Brandpost (utomhus)","Brandsläckare","Larmanläggning","Nödutgångsbelysning","Rökluckor","Varularm","Videoövervakning"]);
else if(event.value == "Säkerhetskontroll")
this.getField("Välj typ").setItems(["Säkerhetskontroll Brandskydd","Säkerhetskontroll Elinstallation","Säkerhetskontroll Statik"]);
else if(event.value == "Tak")
this.getField("Välj typ").setItems(["Hängrännor / Stuprör","Skärmtak","Tak","Takkonstruktion"]);
else if(event.value == "Teknisk anläggning")
this.getField("Välj typ").setItems(["Alldammsugare","Bake off ugn","Balpress","Batteriladdare","Brödpåfyllningsvagn","Brödskärningsmaskin","Diskbänk bröd beredning","Dräneringspump","Elskåp/Säkringar","Eltankställe","Eltruck","F&G och avskrivningsvåg","Frukt & Grönt automat","Handtruck","Inventeringsvåg","Kaffemaskin butik","Kassaspärr","Kassor","Klimatanläggning","Komprimator skruv","Kylaggregat","Kylmedelskylare","Lastbrygga","Luft-värmepump","Pantautomat","Pengavåg","Personhiss","Hiss","Pumpar","Ridåvärmare (Dörrar butiker)","Rulltappa-band","Solcellssystem","Städmaskin/Butiker","Technoport/Entregrind","Tobaksförvaring","UPS/Nödströmsaggregat","Uppvärmning","Varuhiss","Ventilation","Värmeåtervinning"]);
else if(event.value == "Utomhusanläggning")
this.getField("Välj typ").setItems(["Carport","Cykelställ","Flaggor / Flaggstänger","Oljeavskiljare p-yta","Parkering/Körfält/Asfalt","Parkering/Körfält/Marksten","Parkeringsbommar","Parkeringsmarkeringar","Parkeringsyta","Planteringsytor/Gräsmattor","Reklamskyltar fristående","Sophantering","Staket/Stängsel","Stolpbelysning","Stolpskylt","Trafikskyltar parkering"]);
else this.getField("Välj typ").clearItems();

New Participant
April 12, 2022

This is fantastic -- worked like a charm! only issue I am having is that once the second dropdown is populated and a selection is made, when the form is submitted it does not get sent to the recieving folder... leaves that section blank. Any idea how this can be fixed? 

Nesa Nurani
Nesa NuraniCorrect answer
Community Expert
March 18, 2021

Use setItems() to populate dropdown field, here is an example code:

if(event.value == "Item1")
this.getField("Dropdown2").setItems(["Item 1","Item 2","Item 3"]);
else if(event.value == "Item2")
this.getField("Dropdown2").setItems(["Item 4","Item 5","Item 6"]);
else this.getField("Dropdown2").clearItems();

You can also give items an export value like this:

setItems([["Item 1", "1"], ["Item 2", "2"], ["Item 3", "3"]]);
March 25, 2021

Thanks Nesa!  It worked.