These days when I showed my example to some friends I realized that in fact even the second example had potential bugs. In fact not a bug, but missing functionality which could mislead the user while using the component.
What I found: When the user prefer to type instead of selecting the value from the list, then it’s possible to have “nothing selected” in ID field, but in fact the user have feeling that he select the correct value. This is extremely valid when the options are short and typing 3-4 chars which in fact is more convenient to type instead of selecting.
I am using Scriptaculous for Autocomplete control, but in the example provided there is no way to select strict value.
Let me explain what I mean: Go to autocomplete example and try to select an entry in first group of fields. Well everything looking fine.
Then try to modify the entry, for example remove the last char from the field. and press somewhere on the web page /with the mouse/. Well as you can see this didn’t clear the value from ID field and in the real example, when the ID field is hidden, users could have wrong impression that the field is selected, they change it, but their change is not applied … and the complication occur.