按回车键切换焦点


    在网上注册信息时,常常输入一项信息后敲回车键,焦点会自动切换到下一个输入框中。今天练手正好做了一下这个小例子。


<html>
	<head>
		<title>change focus</title>
	</head>
	<body>
		<form>
			<table>
				<tr>
					<td>Username:</td><td><input id="username" /></td>
				</tr>
				<tr>
					<td>Password:</td><td><input id="password" /></td>
				</tr>
			</table>
		</form>
	</body>
</html>
<script>
var usernameObj = document.getElementById("username");
usernameObj.onkeydown = function(event) {
	e = event ? event :(window.event ? window.event : null);
	// 按下回车键且输入框值非空时
	if(e.keyCode==13 && usernameObj.value){   
		document.getElementById("password").focus();
	}
}
</script>  

    上面代码中,首先获取到username的DOM结点对象,然后给username的DOM结点对象绑上keydown事件,让事件去捕获回车键事件,如果捕获到了,将焦点切换到下一个输入框。

    上面的keydown事件指向的方法中,传入事件对象event

e = event ? event :(window.event ? window.event : null); 这一行解决了浏览器兼容问题


    IE浏览器的话,会给事件方法传入当前事件,也就是说IE浏览器下面,这个event是会被传入的;到了非IE浏览器,没有event的传入,那么e 会等于(window.event ? window.event : null) 即window.event ,这便获取到了非IE浏览器的事件对象。


    然后判断事件的keyCode 是否等于13 ,keyCode等于13,则表明该事件为回车键,按下回车键时,且输入框中有输入值,将焦点聚焦到下一个输入框中。



    上面的代码中,我们将事件的绑定放到了script脚本部分,也可以将事件绑定到HTML元素中,在script中声明事件处理方法即可。

   

<html>
	<head>
		<title>change focus</title>
	</head>
	<body>
		<form>
			<table>
				<tr>
					<td>Username:</td><td><input id="username" οnkeydοwn="changeFocus(event)" /></td>
				</tr>
				<tr>
					<td>Password:</td><td><input id="password" /></td>
				</tr>
			</table>
		</form>
	</body>
</html>
<script>
function changeFocus(event) {
	e = event ? event :(window.event ? window.event : null);
	// 按下回车键且输入框值非空时
	if(e.keyCode==13 && document.getElementById("username").value){   
		document.getElementById("password").focus();
	}
}
</script>  

    这种写法同上面的方法同样的效果。


  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值