How to Create Multiple Dependent Dropdown Lists in an Acrobat PDF Form
Question details
The user needs to implement multiple dependent dropdown lists and multi-select fields in an interactive PDF form.

- Product
- Adobe Acrobat
- Device & OS
- not provided
- Scenario
- Creating a complex PDF form where field values (such as window, vent, and damage fields) change dynamically depending on the selections made in previous dropdown menus.
- Observed behavior
- Standard PDF properties cannot process dependent logic natively; custom JavaScript must be written to populate subsequent lists and combine output values.
Before beginning, ensure you have Adobe Acrobat Pro installed to access form editing tools and JavaScript properties. Familiarize yourself with basic JavaScript switch or if/else logic, as it will be required to control the dropdown behavior.
Use Custom JavaScript to Populate Dependent Lists
Configure a custom keystroke or calculation script on your primary dropdown field to dynamically update the choices in your secondary dropdown field.
Since the PDF specification does not have a built-in dependent dropdown feature, you must use Adobe's JavaScript API. By writing a script that detects the user's selection in the first field, you can use the `setItems()` method to push a new array of choices to the second field.
For multi-select fields, your script will need to iterate through the selected values and process the output accordingly.
Open your PDF in Acrobat's 'Prepare Form' mode. Add two Dropdown List fields to your document. Name the first one 'PrimaryList' and the second one 'SecondaryList'.
Double-click 'PrimaryList' to open its Properties. Go to the 'Options' tab and add your main categories (e.g., Window, Vent). Ensure you check the 'Commit selected value immediately' box.
In the Properties for 'PrimaryList', switch to the 'Format' tab. Select 'Custom' as the format category and click 'Edit' next to 'Custom Keystroke Script'.
Enter JavaScript code using a switch statement based on `event.value`. For example: `var f = this.getField("SecondaryList"); if(event.value == "Window"){ f.setItems(["Glass", "Frame"]); } else if (event.value == "Vent"){ f.setItems(["Cover", "Filter"]); }`.
If your 'SecondaryList' involves damages that require multiple selections, double-click it, go to the 'Options' tab, and check 'Allow multiple selections'. Adjust your output field's calculation script to join these array values.

Create Interactive PDF Forms Easily with WPS Office
While complex JavaScript coding can be daunting, WPS Office provides an intuitive, user-friendly interface to create, edit, and manage interactive PDF forms, including dropdowns and text fields, without needing advanced programming skills.
- 1. Open PDF in WPS: Launch WPS Office and open your document in the WPS PDF editor.
- 2. Access Form Tools: Navigate to the 'Form' tab on the top ribbon to view all available interactive field options.
- 3. Add Dropdown List: Click on 'Combo Box' or 'Drop-down' and drag your cursor over the document to draw the form field.
- 4. Configure Properties: Double-click the newly created dropdown field to open its Properties panel. Here, you can easily add your list items and customize appearances.

Frequently Asked Questions
Can I create dependent dropdown lists in a PDF without using JavaScript?
No, standard PDF form fields do not natively support dependent conditional logic. You must use custom JavaScript to dynamically change the options of a secondary field based on a primary field's value.
Why isn't my secondary dropdown updating immediately after I select a primary option?
This happens when the primary dropdown does not commit its value upon selection. Open the Properties of your primary dropdown, navigate to the 'Options' tab, and ensure the 'Commit selected value immediately' box is checked.
How do I make a dropdown list allow multiple selections in an Acrobat form?
Open the Dropdown Properties dialog, go to the Options tab, and check the 'Allow multiple selections' box. Keep in mind that handling multiple selections via JavaScript will require processing an array of values rather than a single string.




