onkeydown 、onkeypress 、onKeyUp 事件
2016-09-24 18:31
363 查看
onkeydown 事件
定义和用法
onkeydown 事件会在用户按下一个键盘按键时发生。语法
onkeydown="SomeJavaScriptCode"
参数 | 描述 |
---|---|
SomeJavaScriptCode | 必需。规定该事件发生时执行的 JavaScript。 |
支持该事件的 HTML 标签:
<a>, <acronym>, <address>, <area>, <b>, <bdo>, <big>, <blockquote>, <body>, <button>, <caption>, <cite>, <code>, <dd>, <del>, <dfn>, <div>, <dt>, <em>, <fieldset>, <form>, <h1> to <h6>, <hr>, <i>, <input>, <kbd>, <label>, <legend>, <li>, <map>, <object>, <ol>, <p>, <pre>, <q>, <samp>, <select>, <small>, <span>, <strong>, <sub>, <sup>, <table>, <tbody>, <td>, <textarea>, <tfoot>, <th>, <thead>, <tr>, <tt>, <ul>, <var>
支持该事件的 JavaScript 对象:
document, image, link, textarea
提示和注释
浏览器差异:Internet Explorer 使用 event.keyCode 取回被按下的字符,而 Netscape/Firefox/Opera 使用 event.which。
实例
在本例中,用户无法在输入框中键入数字:<html> <body> <script type="text/javascript"> function noNumbers(e) { var keynum var keychar var numcheck if(window.event) // IE { keynum = e.keyCode } else if(e.which) // Netscape/Firefox/Opera { keynum = e.which//which 属性指示按了哪个键或按钮。 } keychar = String.fromCharCode(keynum) numcheck = /\d/ return !numcheck.test(keychar) } </script> <form> <input type="text" onkeydown="return noNumbers(event)" /> </form> </html>
onkeypress 事件
定义和用法
onkeypress 事件会在键盘按键被按下并释放一个键时发生。
语法
onkeypress="SomeJavaScriptCode"
参数 | 描述 |
---|---|
SomeJavaScriptCode | 必需。规定该事件发生时执行的 JavaScript。 |
支持该事件的 HTML 标签:
<a>, <acronym>, <address>, <area>, <b>, <bdo>, <big>, <blockquote>, <body>, <button>, <caption>, <cite>, <code>, <dd>, <del>, <dfn>, <div>, <dt>, <em>, <fieldset>, <form>, <h1> to <h6>, <hr>, <i>, <input>, <kbd>, <label>, <legend>, <li>, <map>, <object>, <ol>, <p>, <pre>, <q>, <samp>, <select>, <small>, <span>, <strong>, <sub>, <sup>, <table>, <tbody>, <td>, <textarea>, <tfoot>, <th>, <thead>, <tr>, <tt>, <ul>, <var>
支持该事件的 JavaScript 对象:
document, image, link, textarea
onKeyUp 事件
定义和用法
onkeyup 事件会在键盘按键被松开时发生。语法
onkeyup="SomeJavaScriptCode"
参数 | 描述 |
---|---|
SomeJavaScriptCode | 必需。规定该事件发生时执行的 JavaScript。 |
支持该事件的 HTML 标签:
<a>, <acronym>, <address>, <area>, <b>, <bdo>, <big>, <blockquote>, <body>, <button>, <caption>, <cite>, <code>, <dd>, <del>, <dfn>, <div>, <dt>, <em>, <fieldset>, <form>, <h1> to <h6>, <hr>, <i>, <input>, <kbd>, <label>, <legend>, <li>, <map>, <object>, <ol>, <p>, <pre>, <q>, <samp>, <select>, <small>, <span>, <strong>, <sub>, <sup>, <table>, <tbody>, <td>, <textarea>, <tfoot>, <th>, <thead>, <tr>, <tt>, <ul>, <var>
支持该事件的 JavaScript 对象:
document, image, link, textarea
实例
当您在例子中的输入域中键入字符时,字符会被更改为大写(逐一地):<html> <head> <script type="text/javascript"> function upperCase(x) { var y=document.getElementById(x).value document.getElementById(x).value=y.toUpperCase() } </script> </head> <body> 输入您的姓名: <input type="text" id="fname" onkeyup="upperCase(this.id)" /> </body> </html>
keypress和keydown区别
注意:KeyDown触发后,不一定触发KeyUp,当KeyDown 按下后,拖动鼠标,那么将不会触发KeyUp事件。
KeyPress主要用来捕获数字(注意:包括Shift+数字的符号)、字母(注意:包括大小写)、小键盘等除了F1-12、SHIFT、Alt、Ctrl、Insert、Home、PgUp、Delete、End、PgDn、ScrollLock、Pause、NumLock、{菜单键}、{开始键}和方向键外的ANSI字符
KeyDown 和KeyUp 通常可以捕获键盘除了PrScrn所有按键(这里不讨论特殊键盘的特殊键)。
KeyPress 只能捕获单个字符。
KeyDown 和KeyUp 可以捕获组合键。
KeyPress 可以捕获单个字符的大小写。
KeyDown和KeyUp 对于单个字符捕获的KeyValue 都是一个值,也就是不能判断单个字符的大小写。
KeyPress 不区分小键盘和主键盘的数字字符。
KeyDown 和KeyUp 区分小键盘和主键盘的数字字符。
其中PrScrn 按键KeyPress、KeyDown和KeyUp 都不能捕获。
在使用键盘的时候,通常会使用到CTRL+SHIFT+ALT 类似的组合键功能。对于此,我们如何来判定?
通过KeyUp 事件能够来处理(这里说明一下为什么不用KeyDown,因为在判定KeyDown的时候,CTRL、SHIFT和ALT 属于一直按下状态,然后再加另外一个键是不能准确捕获组合键,所以使用KeyDown 是不能准确判断出的,要通过KeyUp 事件来判定 )
这里简单的列举出CTRL+其它键的组合判定代码:
private void Form3_KeyUp(object sender, KeyEventArgs e) { if (e.Control) { MessageBox.Show("KeyUp:Ctrl+" + e.KeyValue.ToString()); } }
转自w3school,http://www.cnblogs.com/manongxiaobing/archive/2012/11/05/2755412.html
相关文章推荐
- 学习python写网络爬虫(四)
- 为你,千千万万遍
- 天嵌IMX6Q/E9平台 TN92 GT911触摸屏移植Linux 4.1.15_1.2.0
- EventBus使用详解
- studio修改为本地已有的gradle配置
- Oracle数据库--读写分离架构
- studio无法编译的情况
- read 的用法及各项含义
- FileZilla读取目录列表失败的解决办法
- 20160924 中兴技术类笔试题
- 音乐的聆听 & 古典音乐的入门
- java的包
- 问题账户需求分析
- 1105. Spiral Matrix
- Linux C网络编程基本知识
- studio 模拟器的异常情况汇总
- svn 上传.a文件
- 顺序表--元素位置互换之位移法
- struts单利还是多利的
- studio连接不上外接模拟器的原因