I'm making a dynamic structure which reads some output from a FEM program (node results).
I'd like an inputfield in which I specify the number(s) of the nodes I am interested in. The value of the InputField can only be an Integer or a list of integers in a specific range.
Let's say we have only 10 nodes, then the only values the InputField can take are :
{1,2,3,4,5,6,7,8,9,10}
I want to be sure that the user will not be able to put values like {0,11,Pi,...} and if he does, the InputField returns 1.
It may be something like :
(Which sure not working.)
TotalnumberOfnode = 10;
InputField[Dynamic[nodeNumber, {Integer,Element@Range[TotalnumberOfnode]}]]
(Working one but not for lists)
TotalnumberOfnode = 10;
InputField[
Dynamic[nodeNumber,
Function[If[And[TotalnumberOfnode >= # >= 1, IntegerQ[#]],
nodeNumber = #]]]
]
Thanks
Function[If[And[TotalnumberOfnode >= # >= 1, IntegerQ[#]] || And[ListQ[#], TotalnumberOfnode >= Max@# >= 1], nodeNumber = #]]
in the second argument ofDynamic
? $\endgroup$InputField[ Dynamic[nodeNumber, Function[If[ And[TotalnumberOfnode >= # >= 1, IntegerQ[#]] || And[ListQ[#], TotalnumberOfnode >= Max@#, Min@# >= 1], nodeNumber = #]]]]
$\endgroup$