一、设计思路:设计一个简单的输入对话框,然后按下enter进行输入事件。
二、聊天输入框的代码如下:
三、此时的页面展示如下:
四:设计函数,使得输入文字时,按下按钮可以提交到聊天框。
五、此时在页面上测试,输入一段文字:
六、执行结果如下:
七、设计函数,使得按下enter跟按钮同样的功能:
八、刷新页面,测试:
<script type="text/javascript" language=JavaScript charset="UTF-8">
document.onkeydown=function(event){
var e = event || window.event || arguments.callee.caller.arguments[0]
if(e &&e.keyCode==27){ // 按 Esc
//要做的事情
}
if(e &&e.keyCode==113){ // 按 F2
//要做的事情
}
if(e &&e.keyCode==13){ // enter 键
//要做的事情
}
}
</script>
只要你定义了这些键的动作,你在浏览器里按下这些键就会响应,兼容目前所有浏览器。
我做了一个jsp页面,里面有个搜索的功能,搜索是一个放大镜模样的图片,我给了个链接去执行函数,具体代码是:<span onclick="_search()"><img src="images/search.gif" border="0">现在用鼠标点这个搜索图片是没问题的
有搜索条件输入框不?
有的话就在输入框加上onkeypress="if (event.keyCode == 13) _search()"
没有的话就给body加上面这段
判断是否按下的为回车非常简单:复制代码
代码如下:
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:泡沫的幻想