Thanks Jason, but I don't want to use CloudDeploy. I want to see if this functionality can be used within a notebook. I've made some progress since my initial posting. Here is the example extended.
The following sets up a FormObject, which might be a more elaborate structure as shown in FormObject Help, and then creates a FormFunction.
formObject = FormObject["x" -> "Integer"];
form = FormFunction[formObject];
Then the following generates the dynamic form, including Submit and Cancel buttons, and returns the result as an Association. Here I typed 5 into the form and pressed Submit.
filledData = form[]
<|"x" -> 5|>
One can then extract the value as:
filledData["x"]
5
Or, with multiple keys, one can Map filledData onto the List of keys.
It would be nice to know if this method, without using CloudDeploy, requires a connection to a Wolfram server.