The first letter typed is referenced to an array (which you place data into) and possible "solutions" are shown in a dynamic select box. If nothing exists, a new query is launched for data so that the select box can be updated and cached.
As the user continues to type, the possible "solutions" in the dynamic select box is refined. When data in the select box diverges from what the user is typing a new query is launched for more data so that the select box can be updated and cached.
The user can either use the mouse to make a selection or the arrow keys and the enter key.
The form is only submitted when the user presses the enter key while focus is in the input box or if the user clicks on the button.
For this demo jsFlexDynamicData.xml only contains text with the first letter beginning in 'a'.