Hello All. Here is an alternative solution to add a custom value manually into the SharePoint single-choice column using the SharePoint Form Power App.
Prerequisites: The single-choice column should
- Contain a choice named Other
- Don't check "Can add values manually"
Note: If you enable "Can add values manually," any new item you add to the list with a custom value in the "SingleChoiceCustomAdd" column will subsequently be included as an option in the dropdown menu of the "SingleChoiceCustomAdd" column when adding future items.
--------------------- Additional Info ------------------------------
By default, any SharePoint choice columns will accept any custom values!
( which can be managed via other options like Power Automate, and Power Apps)
So, for adding new items.......
- If you have a Power App layer or MS Forms to SharePoint via Power Automate, you don't need to enable "Can add values manually" at all
- If you are doing it via SharePoint Default Form, please enable "Can add values manually" and added custom values will appear in the dropdown of SharePoint Default Form. Later if you build a Power App layer, you will still see custom values appear in the dropdown unless "Can add values manually" is unchecked!
--------------------- Additional Info ends ------------------------------
Demo
Below is my Screen and codes
For Information
______________________________________________________________________________________________
SingleChoiceCustomAdd -------------- Single Choice Custom Add Card .... (Default Card)
SingleChoiceCustomAdd_Table -------- Table ............................ (Custom Added Control)
SingleChoiceCustomAdd_Reset_Icon --- Rest Icon ........................ (Custom Added Control)
SingleChoiceCustomAdd_Submit_Icon -- Add Custom Choice Icon ........... (Custom Added Control)
SingleChoiceCustomAdd_IN_TX -------- Text Field to add custom choices.. (Custom Added Control)
SingleChoiceCustomAdd_SV ----------- Start Visible .................... (Default Control)
SingleChoiceCustomAdd_SV ----------- Error Message .................... (Default Control)
SingleChoiceCustomAdd_IN_DD -------- In Dropdown ...................... (Default Control)
SingleChoiceCustomAdd_LB --------------- Label ........................ (Default Control)
SV (Start Visible)
EM (Error Message)
IN_DD - Input DropDown
IN_TX - Input Text
______________________________________________________________________________________________
//OnChange Property of Dropdown (SingleChoiceCustomAdd_IN_DD) --------------------------------
ClearCollect(DefaultChoices_SingleChoiceCustomAdd, Choices(Test.'Single Choice Custom Add'));
ClearCollect(
var_SingleChoiceCustomAdd,
ForAll(
Filter(
SingleChoiceCustomAdd_IN_DD.SelectedItems,
Value <> "Other"
),
{
Value: Value,
Type: If(
Value in DefaultChoices_SingleChoiceCustomAdd.Value,
"Default Choice",
"Manually Added"
)
}
)
);
//Visible Property of Dropdown (SingleChoiceCustomAdd_IN_DD) ---------------------------------
Self.Selected.Value<>"Other"
//Visible Property of Textinput (SingleChoiceCustomAdd_IN_TX) --------------------------------
!SingleChoiceCustomAdd_IN_DD.Visible
//Width Property of Textinput (SingleChoiceCustomAdd_IN_TX) ----------------------------------
SingleChoiceCustomAdd_IN_DD.Width
//Height Property of Textinput (SingleChoiceCustomAdd_IN_TX) ---------------------------------
SingleChoiceCustomAdd_IN_DD.Height
//X Property of Textinput (SingleChoiceCustomAdd_IN_TX) --------------------------------------
SingleChoiceCustomAdd_IN_DD.X
//Y Property of Textinput (SingleChoiceCustomAdd_IN_TX) --------------------------------------
SingleChoiceCustomAdd_IN_DD.Y
//Display Mode Property of Textinput (SingleChoiceCustomAdd_IN_TX) ---------------------------
If(
Count_var_SingleChoiceCustomAdd=0, DisplayMode.Edit,
Count_var_SingleChoiceCustomAdd=1, DisplayMode.Disabled
)
//HintText Mode Property of Textinput (SingleChoiceCustomAdd_IN_TX) --------------------------
If(
Count_var_SingleChoiceCustomAdd=0, "Enter custom value here",
Count_var_SingleChoiceCustomAdd=1, "Max value has been reached"
)
//Visible Property of Textinput Submit (SingleChoiceCustomAdd_Submit_Icon) -------------------
!SingleChoiceCustomAdd_IN_DD.Visible And !IsBlank(SingleChoiceCustomAdd_IN_TX.Text) And Count_var_SingleChoiceCustomAdd<=1
//OnSelect Property of Textinput Submit (SingleChoiceCustomAdd_Submit_Icon) ------------------
ClearCollect(
var_SingleChoiceCustomAdd,
{
Value: SingleChoiceCustomAdd_IN_TX.Text,
Type: "Manually Added"
}
);
Reset(SingleChoiceCustomAdd_IN_TX);
Set(Count_var_SingleChoiceCustomAdd, CountRows(var_SingleChoiceCustomAdd));
//OnSelect Property of Textinput Reset (SingleChoiceCustomAdd_Reset_Icon) --------------------
Reset(SingleChoiceCustomAdd_IN_TX);
Reset(SingleChoiceCustomAdd_IN_DD);
ClearCollect(DefaultChoices_SingleChoiceCustomAdd, Choices(Test.'Single Choice Custom Add'));
ClearCollect(
var_SingleChoiceCustomAdd,
{
Value: SingleChoiceCustomAdd_IN_DD.Selected.Value,
Type: If(
IsBlank(SingleChoiceCustomAdd_IN_DD.Selected.Value),
"",
If(
CountIf(DefaultChoices_SingleChoiceCustomAdd, Value = SingleChoiceCustomAdd_IN_DD.Selected.Value) > 0,
"Default Choice",
"Manually Added"
)
)
}
);
Set(Count_var_SingleChoiceCustomAdd, 0);
//Visible Property of Textinput Reset (SingleChoiceCustomAdd_Reset_Icon) ---------------------
!SingleChoiceCustomAdd_IN_DD.Visible
//Visible Property of Table (SingleChoiceCustomAdd_Table) ------------------------------------
!SingleChoiceCustomAdd_IN_DD.Visible
//Items Property of Table (SingleChoiceCustomAdd_Table) --------------------------------------
var_SingleChoiceCustomAdd
//Update Property of Card (SingleChoiceCustomAdd) --------------------------------------------
First(var_SingleChoiceCustomAdd.Value)
//Height Property of Card (SingleChoiceCustomAdd) --------------------------------------------
If(
MultiChoiceCustomAdd_IN_TX.Visible=true,
175,
82
)

Report
All responses (
Answers (