<INPUT ...><INPUT onKeyPress="...">
onKeyPressgetkey() function does just that:
<SCRIPT TYPE="text/javascript">
<!--
function getkey(e)
{
if (window.event)
return window.event.keyCode;
else if (e)
return e.which;
else
return null;
}
//-->
</SCRIPT>
In its simplest use, getkey() simply returns the numeric code for the key which was pressed. So, for example, you could display the code in the window status bar, a useful technique if you've forgotten which codes go with which keys.
<INPUT onKeyPress="window.status = getkey(event)">
This gives us this form:
Most of the time you'll want to useonKeyPressgoodchars() uses getkey() so make sure you copy both of them into your page.
<SCRIPT TYPE="text/javascript">
<!--
function goodchars(e, goods)
{
var key, keychar;
key = getkey(e);
if (key == null) return true;
// get character
keychar = String.fromCharCode(key);
keychar = keychar.toLowerCase();
goods = goods.toLowerCase();
// check goodkeys
if (goods.indexOf(keychar) != -1)
return true;
// control keys
if ( key==null || key==0 || key==8 || key==9 || key==13 || key==27 )
return true;
// else return false
return false;
}
//-->
</SCRIPT>
goodchars() takes two arguments: the event object and a string of acceptable characters. So, for example, we could allow only numbers in the field with code like this:
<INPUT NAME=INT onKeyPress="return goodchars(event,'0123456789')">
Which gives us this form:
Be sure to put the wordreturn before the call to goodchars() or the event won't be cancelled if the user presses a wrong key. goodchars() is case-insensitive. If you allow "X" you also automatically allow "x".
goodchars() allows the standard editing keys such as backspace and delete.