<SCRIPT language="JavaScript">
<!--
//回车将焦点移植下一个input控件
function focusNext(){
if(window.event.keyCode!=13) 
return; //终止冒泡处理
event.cancelBubble=true;
event.keyCode='0'; //只有在input中输入的回车才会处理
if(event.srcElement.tagName.toLowerCase() != "input")
return ;
var fieldObject = event.srcElement; //得到所有表单对象
//concat连接后数组竟然是二维,吐血,只好自己写了 :(
var eles = new Array();
var forms = document.forms;
for(var i=0; i<forms.length; i++)
for(var j=0; j<forms[i].elements.length; j++)
eles[eles.length] = forms[i].elements[j]; for(var i=0; i<eles.length; i++)
//找到发出事件的表单对象
if(eles[i] == fieldObject)
for (var j=i+1; j<eles.length; j++){
//找到下一个可用input,focus
if(eles[j].tagName.toLowerCase() != "input")
continue;
if (eles[j].type != 'hidden' && eles[j].disabled != true && eles[j].readOnly != true){
eles[j].focus(); 
return ;
}
}
}
!-->
</SCRIPT><html>
<body onkeydown=focusNext();><form>
<select/><br>
<input name="0"/><br>
<input name="1" value="1"><br>
<input type="hidden"><br>
<input name="2"><br>
<select/><br>
<input type="hidden"  name="3"><br>
<input name="4" disabled><br>
</form><form>
<select/><br>
<input name="5"/><br>
<input name="6" readOnly><br>
<input name="7" type="hidden"><br>
<input name="8"><br>
<input name="9" type="hidden"><br>
<input name="10"><br>
</form></body>
</html>

解决方案 »

  1.   

    鄙视楼主~~-----------------------------------------------------------------------
    <input type=text  onkeydown="if(event.keyCode==13)event.keyCode=9"><br>
    <input type=text  onkeydown="if(event.keyCode==13)event.keyCode=9"><br>
    <input type=text  onkeydown="if(event.keyCode==13)event.keyCode=9"><br>
    <input type=text>
    <p>
    <input onkeydown="t()">
    <input onkeydown="t()">
    <input onkeydown="t()">
    <script>
    function t()
    {
    if(event.keyCode==13) event.keyCode=9
    }
    </script>
      

  2.   

    关于焦点回车转移, 我也写了一段代码, 大家交流一下:function document.onkeydown()  //网页里按回车时焦点的转移
    {
        var e = document.activeElement;
        if(e.tagName == "INPUT" && (
           e.type == "text"     || 
           e.type == "password" || 
           e.type == "checkbox" || 
           e.type == "radio")   ||
           e.tagName == "SELECT"
          )
        {
            if(window.event.keyCode == 13)
            {
                window.event.keyCode = 9;
            }
        }
    }wsyab(瘦瘦男--炒饭) 请不要在技术论坛里进行人身攻击, 大家友好地交流技术!!
      

  3.   

    meizz(梅花雪疏影横斜) ::::::::::::::::::::鄙视你没幽默感!
      

  4.   

    wsyab(瘦瘦男--炒饭) 
     鄙视你鄙视别人,呵呵
      

  5.   

    To wsyab(瘦瘦男--炒饭) 你的写代码明显有漏洞,你的做法是不管三七二十一遇到回车就变Tab,那么如果在你的text框群中间参杂一个button控件就不灵了,怎么还鄙视楼主?他的心思比你缜密多了。
      

  6.   

    hazeline(砸死我)::::::::::::
    鄙视你不分text/button!!
      

  7.   

    呵呵,无所谓.
    To:meizz(梅花雪疏影横斜)
      代码写的比我简洁多了 :)
      

  8.   

    还有一点,实际运用时我遇到过onkeypress事件触发表单提交的情况.
    不过将enter换成tab此方法应该不会出现这问题.
      

  9.   

    各有不同的用处,一个可以使全部页面的回车变tab,页面复杂的情况下还是方便的。
    一个是单独在input标签里定义,可以做到自由取舍,有时页面里不是所有的表单都需要这么处理的。
    所以不能简单说谁的方法就更好,更无须鄙视了,这不是学习的态度。
      

  10.   

    看看我的吧。
    function func_key_down()
    {
    var src_obj = window.event.srcElement;
    if (window.event.keyCode == 13)
    {
    if (src_obj.type != "submit"
    && src_obj.type != "button"
    && src_obj.type != "reset"
    && src_obj.type != "image"
    && src_obj.tagName != "A"
    && src_obj.tagName != "TEXTAREA")
    {
    window.event.keyCode = 9;
    }
    }
    }
    window.document.onkeydown = func_key_down;