我們的志工尚未將此文章翻譯為 正體中文 (繁體) 版本。加入我們,幫忙翻譯!
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("https://developer.mozilla.org/"); } return true; }; })();
文件標籤與貢獻者
標籤:
此頁面的貢獻者:
cvrebert,
Sebastianz,
teoli,
SphinxKnight,
fusionchess,
kscarfone,
Sheppy,
ethertank,
Niggler,
ziyunfei,
fscholz,
BenoitL,
Pitoutompoilu,
PointedEars,
Dria,
JesseW
最近更新:
cvrebert,