Incremental Select in JavaScript
<head>
<SCRIPT = JavaScript>
var timerid = null;
var matchString = "";
var mseconds = 5000; // Length of time before search string is reset
function shiftHighlight(keyCode,targ)
{
keyVal = String.fromCharCode(keyCode); // Convert ASCII Code to a string
matchString = matchString + keyVal; // Add to previously typed characters
elementCnt = targ.length - 1; // Calculate length of array -1
for (i = elementCnt; i > 0; i--)
{
selectText = targ.options[i].text.toLowerCase(); // convert text in SELECT to lower case
if (selectText.substr(0,matchString.length) == matchString.toLowerCase())
{
targ.options[i].selected = true; // Make the relevant OPTION selected
}
}
clearTimeout(timerid); // Clear the timeout
timerid = setTimeout('matchString = ""',mseconds); // Set a new timeout to reset the key press string
return false; // to prevent IE from doing its own highlight switching
}
</SCRIPT>
</head>
<body>
<select tabindex=1 name=whatever accesskey='s' label='Select something' size=1 onKeyPress = 'return shiftHighlight(event.keyCode, this);'>'
<option>Type a selection</option>