Advanced usage: If you need to use the value of the dropdown menu to populate another menu, naturally you would want to use onChange event handler of this menu. But too bad IE does not fire onChange event when user presses 'Enter' key (Firefox works correctly). Version 1.0+ of this script gets around this problem in IE. All you need to do is include something like below in your html page head section:
<script src="my_javascript_path/autocomplete.js"></script>
<script>
function myfunction(userSelectedMenuValue)
{
// place your code here to use the userSelectedMenuValue
}
ml_autocomplete.onChange = myfunction;
</script>
Now when user types a string then presses 'Enter' key, myfunction will
be called
and your code will be executed whichever browser the user's using.
1.1 (July 09, 2010) Changed onkeypress code to allow TAB key focus correctly
in Firefox; Changed browser detection to allow 'CCCC' work in Chrome.
1.0 (Feb. 11, 2007) Allow callback function to be defined so that when user
presses "Enter" key, the callback function will be called with the current
value of the dropdown menu (this features allows webmaster to use the value
from the current menu to populate another menu)
0.9 (Nov. 18, 2006) Incorporated another fix by Sarah Berry to handle unsorted
menu options correctly.
0.8 (Nov. 6, 2006) Changed script into object-oriented JS and put into a separated
file to be included into HTML file. Incorporated two minor bug
fixes by Sarah Berry.
0.7 (July 12, 2005) Added handling of most printable characters, and safeguarded
against non-printable characters such as arrow keys. An exhaustive list of
characters allowed in the dropdown list includes: any printable characters
that can be input with a single key press (e.g., '0' can be produced by
pressing only '0' key, but ')' cannot be produced by a single key (it
requires both shift and '0' keys), therefore ')' is not supported).
0.6 (July 1, 2005) Added handling of numpad/keypad keys.
0.5 (April 22, 2005) Significant code changes:
removed unnecessary variables and function,
changed time recording (I found that onKeyUp is not fired as quickly as
they should be, causing inconsistent behavior at times)
changed to use options.text instead of value, in case web page author needs
to use value differently from text (text is the text web page viewers see,
value is the text used by the form cgi application).
changed default time gap for type-ahead behavior to 0.5 second from 0.3 second.
0.4 (April 7, 2005) added handling of all browsers and an improvement.
Please note that with this version out, one probably wants to use this
script in all Gecko-based browsers too (Mozilla, Firefox, Netscape, K-Meleon,
...) since the default behavior in these browsers handles consecutive
letters in a special way (if the letter is used as the first letter for an
option), which could be confusing to users IMO (and it works incorrectly
for option that is composed of only one character like 'AA', since firefox
etc. would instead move to 'AB' after users press two 'A's).
0.3 (April 6, 2005) added Duncan Cook's improvement to allow the script work on
more than one selects
0.2 (Jan 11, 2005) added comments, shortened/improved code a little to avoid
exception
0.1 (Oct 7, 2004) first version