Adding a Free-Form Option to Dropdowns in Power Apps
Extend a combo box with an 'Other' choice that reveals a text input for custom entries, and save the data correctly to your data source.
Dropdown menus are perfect when you want users to pick from a fixed set of values, but sometimes the set doesn’t cover every scenario. A user may need to enter a value that isn’t in the list, such as a custom category, a new location, or a unique identifier. This article walks through a pattern that adds an “Other” option to a dropdown and shows a text input only when that option is selected, then saves the custom value back to your data source.
The technique works with any data source that supports choice columns – SharePoint, Dataverse, or a local collection – and uses the Ungroup function to merge your existing choices with a single “Other” item.
Example Scenario
Imagine a support request form where team members pick a category from a SharePoint choice column:
- Login Problem
- Billing Inquiry
- Technical Glitch
- Feature Request
When none of these fit, users need to type their own category. The form should let them select “Other” from the dropdown, then enter a custom value in a text input. The collected data must be saved to the SharePoint list with that custom value.
We’ll use the following control names in this article (you can adapt them to your form):
- ddlCategory – the combo box (dropdown) bound to the SharePoint choice column.
- txtCustomCategory – the text input that appears when “Other” is selected.
- icoResetCategory – an icon to reset both controls if the user changes their mind.
- frmSupportRequest – the Edit form connected to the SharePoint list.
Step 1: Add the “Other” Option to the Dropdown
By default, a combo box bound to a choice column only shows the defined choices. To add “Other”, override the Items property of the combo box with this formula:
Ungroup(
Table(
{Options: Choices('SupportRequests'.Category)},
{Options: ["Other"]}
),
"Options"
)The Table function creates a two‑row table. The first row contains all existing choices (nested as a table inside the Options column). The second row contains the string "Other". Ungroup expands the Options column, producing a flat list of individual items that the combo box renders.
Step 2: Show a Text Input When “Other” Is Selected
Place a Text input control directly over the combo box (or beside it) and set its Visible property to:
!ddlCategory.Visible
Now set the combo box’s Visible property so it hides when “Other” is the current selection:
ddlCategory.Selected.Value <> "Other"
When a user selects a standard choice like “Billing Inquiry”, the dropdown remains fully visible. The moment they pick “Other”, the dropdown disappears and the text input becomes visible, ready for a custom entry.
Step 3: Provide a Way to Go Back
If a user selects “Other” accidentally or changes their mind, they need a way to return to the dropdown. Add an icon (for example, a Cancel or Undo icon) and set its Visible property to the same condition as the text input:
!ddlCategory.Visible
In the icon’s OnSelect property, reset both controls:
Reset(ddlCategory); Reset(txtCustomCategory);
Now the user can click the icon, the dropdown reappears (showing no selection), and the text input is cleared.
Step 4: Save the Custom Value to the Data Source
When the form is submitted, the card that contains the dropdown must decide which value to send. Highlight the Category card inside the Edit form, and set its Update property to:
If(
ddlCategory.Selected.Value = "Other",
{Value: txtCustomCategory.Text},
ddlCategory.Selected
)If the dropdown’s selected value equals “Other”, the card sends a record with the text input’s content. Otherwise, it sends the standard selected choice.
Finally, make sure your Submit button calls SubmitForm:
SubmitForm(frmSupportRequest)
After submission, a record with a custom category like “On‑site Training” will appear in the SharePoint list just like any pre‑defined choice.
Performance and Delegation Notes
Choices,Table, andUngroupall run on the client, so this pattern does not involve delegation. It works efficiently even with large choice lists because the entire list of values is already local once the form loads.- If your choice list contains hundreds of items, the combination of
TableandUngroupstill performs well because the data set is small. - The text input’s visibility toggle (
!ddlCategory.Visible) is a simple boolean expression that does not cause additional data calls.
Common Mistakes and Troubleshooting
| Mistake | Symptom | Fix |
|---|---|---|
| Spelling “Other” with different case (“other”) | The condition Selected.Value <> "Other" never matches, so the dropdown never hides. | Use exactly "Other" (or whatever string you put in the Table). |
| Forgetting to reset the text input | After clicking the reset icon, the dropdown reappears but the text input still shows the old custom text. | Include Reset(txtCustomCategory) in the icon’s OnSelect. |
The Update property contains a direct reference to ddlCategory.Selected | Selection changes after “Other” is picked may cause an error because the dropdown is hidden. | Use the If formula shown in Step 4 to explicitly handle the custom case. |
| The text input or icon is never visible | The Visible property is set on the wrong control or the spelling of the control name is incorrect. | Double‑check that the control names match exactly, and that you’re using !ddlCategory.Visible, not !Self.Visible. |
Final Recommendation
This “Other” pattern is simple, relies only on built‑in functions, and does not require custom components or JavaScript. It works in SharePoint, Dataverse, or any data source that uses choice columns. Use it whenever the static list of options might not cover every possible answer, especially in surveys, request forms, or configuration interfaces.
References
- Original inspiration and technique by Matthew Devaney: Create a Dropdown with an Other Option in Power Apps
- Microsoft Learn – Combo box control: https://docs.microsoft.com/en-us/powerapps/maker/canvas-apps/controls/control-combo-box
- Microsoft Learn –
Ungroupfunction: https://docs.microsoft.com/en-us/powerapps/maker/canvas-apps/functions/function-groupby-ungroup
Learn how small coding practices—like using descriptive names, flattening conditions, and simplifying logic—can make your apps easier to update and less error-prone.
Move past the gallery and discover the hidden patterns for validation, navigation, and smart submission handling in your data entry forms.
PowerShell unlocks admin capabilities that the Power Platform admin center simply doesn’t offer—from recovering deleted apps to blocking trial licenses. Here’s how to wield them safely.