一般情况下,在一个form表单中如果存在一个input标签的type值为submit,那么直接敲回车键这个表单就提交了。且,一般情况下,网页中切换焦点都是使用Tab键来控制,顺序则由标签的index属性值来控制。
不过,为了使用者的方便(并不一定方便,而是客户的需求,客户觉得Tab不方便。),我们需要用JavaScript来重新实现一番,要能够通过回车切换焦点而不提交表单。
可以这么来实现:每个input都赋予唯一id值,且id是有规律有次序的(如共有n个,则id值依次为:i1,i2,i3…in)。首先获取所有的input标签:
var inputs = document.getElementsByTagName('input');
接下来遍历并处理onkeyup事件,回车键的ASCⅡ码值为13,当keyCode值为13时,使用JavaScript正则表达式取出当前当input标签中id索引值,从而拼出下一个待获得焦点的input标签的id,接着使用document.getElementById()找到该标签并调用自身的focus()方法使其获得焦点。
1 2 3 4 5 6 7 8 9 10 11 | for(var i = 0; i < inputs.length; i++){ inputs[i].onkeyup = function(event){ event = event || window.event; if(event.keyCode == 13){ var next = document.getElementById('i' + (parseInt(this.id.match(/\d+/)[0]) + 1)); if(next){ next.focus(); } } } } |
但是这时候点击回车表单依旧会提交。可以这么处理:将submit改成button,然后监听onclick通过JavaScript提交表单。

