文本框按键事件onkeydown、onkeypress、onkeyup区别
当我们在搜索时,会用到这几个事件
- onkeydown 是指鼠标按下的那一刻,此时用户不知道按了什么,文本框也不会显示,首先触发的事件
- onkeypress 是指鼠标按下然后松开的瞬间,此时仍然获取不到文本框的内容
- onkeyup 是指鼠标松开后的那一刻,怎么和onkeypress 区别呢,假如你按住一个键,不松开,那么按住的时候会执行onkeydown和onkeypress,不会执行onkeyup,直到你松开键盘的那一刻执行。
也就是说,按下一个字母时,执行的顺序:onkeydown onkeypress onkeyup
按住某个字母不放时,执行的顺序:(onkeydown onkeypress ···· onkeydown onkeypress)onkeyup
然后当我们输入中文时,却不一样:只会发生onkeydown 和 onkeyup
还有部分功能键如:F1、F3键等只会发生onkeydown ;Tab键,backspace,delete等键只会发生 onkeydown 和 onkeyup
总的来说,如果要检测文本框输入内容用onkeyup,这里又遇到一个问题,当我们输入中文时,用鼠标自己点击文字输入(或者手机点击输入提示栏的文字),此事件检测不到,怎么办呢,可以这样:
if (navigator.userAgent.indexOf("MSIE") != -1) {
bindName = "propertychange"; //判断是否为IE内核 IE内核的事件名称要改为propertychange
}
$('#txt').bind(bindName, function() {
word(4);
});
-----------------------------------测试代码-----------------------------------
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Document</title>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script>
function word(str) {
console.log(str + "---" + document.getElementById('txt').value);
}
var bindName = "input";
$(function() {
if (navigator.userAgent.indexOf("MSIE") != -1) {
bindName = "propertychange"; //判断是否为IE内核 IE内核的事件名称要改为propertychange
}
$('#txt').bind(bindName, function() {
word(4);
});
})
</script>
</head>
<body>
<input type="text" id="txt" onerror="errortip()" onkeydown="word(1)" onkeypress="word(2)" onkeyup="word(3)" />
</body>
</html>
文本框按键事件onkeydown、onkeypress、onkeyup区别的更多相关文章
- 转:onkeypress、onkeydown、onkeyup 区别
在使用JavaScript做WEB键盘事件侦听捕获时,主要采用onkeypress.onkeydown.onkeyup三个事件进行出来.该三个事件的执行顺序如下:onkeydown -> onk ...
- JavaScript文本框焦点事件
效果图如下: <!-- 当文本框获得焦点时候,如果文本框内容是 请输入搜索关键字 清空文本框,输入内容变黑色 --> <!-- 当文本框失去焦点时候,如果文本框无内容,则添加灰色的 ...
- jquery 监控文本框键盘事件(回车事件),附常用keycode值。
$(function(){ $(".search").keydown(function(event) { ) { //执行操作 } }) ); 完整的 key press 过程分为 ...
- GridView里的文本框改变事件
<asp:TemplateField HeaderText="实收数量"> <ItemTemplate> <asp:TextBox ID=" ...
- ASP.net绑定文本框Enter事件到按钮 ASP.NET执行后台执行JS方法
txtAccountBarcode.Attributes.Add("onkeydown", "if(event.which || event.keyCode){if (( ...
- jQuery中的bind绑定事件与文本框改变事件的临时解决方法
暂时没有想到什么好的解决办法,我现在加了个浏览器判断非ie的话就注册blur事件,这样有个问题就是blur实在别的控件活动焦点的时候,txtStation控件注册的方法是为了填充它紧挨着的一个下拉列表 ...
- WebForm - 文本框回车事件
document.getElementById("Pwd").onkeyup = function (e) { ) { fun_Login(); } };
- js监听文本框变化事件
用js有两种写法: 法一: <!DOCTYPE HTMl> <html> <head> <title> new document </title& ...
- EXTJS 4.2 资料 控件之textfield文本框加事件的用法
{ xtype: "textfield", width: 100, id: "txtGroupName", name: "txtGroupName&q ...
随机推荐
- C#。5 函数 类
函数:能够独立完成某个功能的模块. 好处:1.结构更清析(编写.维护方便 ).2.代码重用.3.分工开发. 四要素:名称,输入(参数),输出(返回的类型),加工(函 ...
- MVC Controller 基类中的Request
今天在测试自己MVC程序的时候发现之前写代码的一个BUG,需求是每个页面要获取当前URL链接中包含的城市ID,我把获取url的方法写到了Controller的基类BaseController(Base ...
- ADO.NET之使用DataGridView控件显示从服务器上获取的数据
今天回顾下ADO.NET中关于使用DataGridiew控件显示数据的相关知识 理论整理: 使用 DataGridView 控件,可以显示和编辑来自多种不同类型的数据源的表格数据. SqlDataAd ...
- abstract修饰符,具体类与抽象类的区别
abstract修饰符 abstract可以修饰类,表示一个抽象类,注意:抽象类和具体类唯一的区别:类不能创建对象,而具体类是可以创建对象的 1.具体类有构造方法,抽象类也有构造方法 2.具体类可以有 ...
- Sql Server导出表结构Excel
SELECT 表名 Then D.name Else '' End, 表说明 Then isnull(F.value,'') Else '' End, 字段序号 = A.colorder, 字段名 = ...
- 层次查询start with ... connect by
如:select distinct dep_id from t_sys_dep_dimensions start with dep_id = (select dept_id from t_sys_pe ...
- angularjs——module
1.创建module //第一个参数是模块的名称 var head=angular.module('headApp',[]); head.controller("User",[&q ...
- CentOS 5上Apache配置虚拟主机范例
昨天实践了下在CentOS 5上通过Apache直接配置虚拟主机,服务器没有安装面板软件,所以只能通过SSH远程连接操作了.Apache安装在/etc/httpd目录下,这个即是Apache的根目录, ...
- [Flask Security]当不能通过认证的时候制定跳转
Flask Security这个插件能对用户权限进行很好的控制. 通过三个model实现: User,存放用户数据 Role,存放角色数据 User_Role.存放用户角色信息 user_datast ...
- Function 语意学
C++支持三种类型的member functions: static.nonstatic和virtual,每一种类型调用方式都不相同. 一 nostatic members functions 1 调 ...