文本框中,回车键触发事件的js代码[多浏览器兼容]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文本框中,回车键触发事件的js代码[多浏览器兼容]相关的知识,希望对你有一定的参考价值。

参考技术A 判断是否按下的为回车非常简单:
复制代码
代码如下:
function
EnterPress()
if(event.keyCode
==
13)
...


IE6的onkeypress会接受"回车事件",而onkeydown不会接受
IE8的onkeypress不会接受"回车事件",而onkeydown会接受
...不用纠结于此,两个都写上吧
复制代码
代码如下:
<input
type="text"
onkeypress="EnterPress()"
onkeydown="EnterPress()"
/>
但是,到了FF下面,又会出现矛盾.FF是onkeypress和onkeydown都接受"回车事件"的.
同时,为了兼容FF下面能获得event,需要这样写:
复制代码
代码如下:
function
EnterPress(e)
//传入
event
var
e
=
e
||
window.event;
if(e.keyCode
==
13)
...


那么,只要给任意的一个事件内传参数
event,另外一个不传参数,即可以让FF只执行一次了:
复制代码
代码如下:
&<input
type="text"
onkeypress="EnterPress(event)"
onkeydown="EnterPress()"
/>
综上,兼容IE和FF:
复制代码
代码如下:
<head>
<script>
function
EnterPress(e)
//传入
event
var
e
=
e
||
window.event;
if(e.keyCode
==
13)
document.getElementById("txtAdd").focus();


</script>
</head>
<body>
<input
type="text"
id="txtName"
onkeypress="EnterPress(event)"
onkeydown="EnterPress()"
/>
<input
type="text"
id="txtAdd"
/>
</body>
--by:泡沫的幻想

javascript 文本框中,判断回车键触发事件 兼容IE&FireFox

1.onkeypress&onkeydown区别

onkeypress 事件在用户按下并放开任何字母数字键时发生。但是系统按钮(例如:箭头键、功能键)无法得到识别。
onkeydown 事件在用户按下任何键盘键(包括系统按钮)时发生。捕获的 keyCode 不区分字母大小,而 onkeypress 区分。

IE6的onkeypress会接受"回车事件",而onkeydown不会接受
IE8的onkeypress不会接受"回车事件",而onkeydown会接受

FireFox中onkeypress和onkeydown都接受"回车事件"的.

 

<head> 
<script> 
function EnterPress(e){ //传入 event 
var e = e || window.event; 
if(e.keyCode == 13){ //13代表回车符
//TO_DO按下回车键后的动作
} 
} 
</script> 
</head> 
<body> 
<input type="text" id="txtName" onkeypress="EnterPress(event)" onkeydown="EnterPress()" /> 
</body>

在html源码中,同时用到了onkeypress、onkeydown,但是上文说了,FireFox均接受回车事件,为了使其只运行一次,则任意的一个事件内传参数 event,另外一个不传参数。

 

最后,完成兼容IE&FireFox。

 

以上是关于文本框中,回车键触发事件的js代码[多浏览器兼容]的主要内容,如果未能解决你的问题,请参考以下文章

asp.net中没用js绑定回车事件,可是为啥在文本框中输入内容后按回车键还会触发该事件?求大神解释下!

PYQT5(二十四)文本框回应回车事件

用户在文本框中按下回车的 JQuery 事件?

移动端回车键触发表单提交及相关兼容

js中回车触发事件

请问下,在ext的可编辑grid中点击回车事件,怎样将光标聚焦到grid外的某个文本框中?