这个是不用修改,直接放在js里就可以用的:
//按enter键实现tab键的效果
document.onkeydown=function(evt){
//document.all可以判断浏览器是否是IE,是页面内所有元素的一个集合
var isie = (document.all) ? true : false;
var key;
var srcobj;
// if the agent is an IE browser, it's easy to do this.
if (isie) {
key = event.keyCode;
srcobj=event.srcElement;//event.srcElement,触发这个事件的源对象
}
else {
key = evt.which;
srcobj=evt.target;//target是Firefox下的属性
}
if(key==13 && srcobj.type!='button' && srcobj.type!='submit' &&srcobj.type!='reset' && srcobj.type!='textarea' && srcobj.type!='') {
if(isie)
event.keyCode=9;//设置按键为tab键
else {
var el=getNextElement(evt.target);
if (el.type!='hidden')
; //nothing to do here.
else
while(el.type=='hidden')
el=getNextElement(el);
if(!el)
return false;
else
el.focus();
}
}
}
function getNextElement(field) {
var form = field.form;
for(var e = 0; e < form.elements.length; e++) {
if (field == form.elements[e])
break;
}
return form.elements[++e % form.elements.length];
}
顺便介绍一下document.all的功能:
document.all用法
一.
document.all是页面内所有元素的一个集合。例如:
document.all(0)表示页面内第一个元素
二.
document.all可以判断浏览器是否是IE
if(document.all)
{
alert("is IE!");
}
三.
也可以通过给某个元素设置id属性(id=aaaa),然后用document.all.aaaa调用该元素
四.
案例:
代码1:
<input name=aaa value=aaa>
<input id=bbb value=bbb>
<script language=Jscript>
alert(document.all.aaa.value) //根据name取value
alert(document.all.bbb.value) //根据id取 value
</script>
代码2:
但是常常name可以相同(如:用checkbox取用户的多项爱好的情况)
<input name=aaa value=a1>
<input name=aaa value=a2>
<input id=bbb value=bbb>
<script language=Jscript>
alert(document.all.aaa(0).value) //显示a1
alert(document.all.aaa(1).value) //显示a2
alert(document.all.bbb(0).value) //这行代码会失败
</script>
代码3:
理论上一个页面中的id是互不相同的,如果出现不同tags有相同的id
document.all.id 就会失败,就象这样:
<input id=aaa value=a1>
<input id=aaa value=a2>
<script language=Jscript>
alert(document.all.aaa.value) //显示 undefined 而不是 a1或者a2
</script>
也就是说document.all[]是文档中所有标签组成的一个数组变量,
包括了文档对象中所有元素
document.all[]这个数组可以访问文档中所有元素。