The onkeypress property sets and returns the onKeyPress event handler code for the current element.
Syntax
element.onkeypress = event handling code
Notes
The keypress event should be raised when the user presses a key on the keyboard. However, not all browsers fire keypress events for certain keys.
Browser Incompatibilities
Webkit-based browsers (Google Chrome and Safari, for example) do not fire keypress events on the arrow keys
Firefox does not fire keypress events on modifier keys like SHIFT
Specifications
Specification | Status | Comment |
---|---|---|
WHATWG HTML Living Standard The definition of 'onkeypress' in that specification. |
Living Standard |
Examples
Example 1: Filter the digitation in a form field through a regular expression
The following example shows the use of the onkeypress
event during a digitation into a form field in order to filter the typed characters:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Example</title>
<script>
function numbersOnly(oToCheckField, oKeyEvent) {
return oKeyEvent.charCode === 0 || /\d/.test(String.fromCharCode(oKeyEvent.charCode));
}
</script>
</head>
<body>
<form name="myForm">
<p>Enter numbers only: <input type="text" name="myInput" onkeypress="return numbersOnly(this, event);" onpaste="return false;" /></p>
</form>
</body>
</html>
Example 2: Capture the digitation of a hidden word
The following example will do something after the user digits the word "exit" in any point of a page.
/* Type the word "exit" in any point of your page... */
(function () {
var sSecret = /* chose your hidden word...: */ "exit", nOffset = 0;
document.onkeypress = function (oPEvt) {
var oEvent = oPEvt || window.event, nChr = oEvent.charCode, sNodeType = oEvent.target.nodeName.toUpperCase();
if (nChr === 0 || oEvent.target.contentEditable.toUpperCase() === "TRUE" || sNodeType === "TEXTAREA" || sNodeType === "INPUT" && oEvent.target.type.toUpperCase() === "TEXT") { return true; }
if (nChr !== sSecret.charCodeAt(nOffset)) {
nOffset = nChr === sSecret.charCodeAt(0) ? 1 : 0;
} else if (nOffset < sSecret.length - 1) {
nOffset++;
} else {
nOffset = 0;
/* do something here... */
alert("Yesss!!!");
location.assign("http://developer.mozilla.org/");
}
return true;
};
})();
Document Tags and Contributors
Tags:
Contributors to this page:
cvrebert,
Sebastianz,
teoli,
SphinxKnight,
fusionchess,
kscarfone,
Sheppy,
ethertank,
Niggler,
ziyunfei,
fscholz,
BenoitL,
Pitoutompoilu,
PointedEars,
Dria,
JesseW
Last updated by:
cvrebert,