Skip to main content

front end - How to make InputField admit multiple entries


Is there a way to make InputField[] compatible with RepeatingElement or a similar scheme of user interaction? The idea is to create an interface with many user defined variables, as many as the user sees fit to be exact.



Answer



Here's something to start with:


multiInput // ClearAll

multiInput[Dynamic[list_], type_: Number, def_: 0, opts___] :=
DynamicModule[{n = Length[list]},
Column[{
Button["+", AppendTo[list, def]; n++;],
Dynamic[
Grid[
Table[{
InputField[Dynamic[list[[#]]], type, opts],
Button["-", n--; list = Delete[list, #]]
} &@i, {i, n}]

, Alignment -> {Left, Center}],
TrackedSymbols :> {n}
]


}, BaseStyle ->
ButtonBoxOptions -> {ImageSize -> All, FrameMargins -> 5,
ContentPadding -> False}]
]


l = {};
multiInput[Dynamic@l]
Dynamic@l

enter image description here


Comments