<input onkeydown="if(event.keyCode==13)event.keyCode=9">ENTER键可以让光标移到下一个输入框<br>
<input onkeydown="if(event.keyCode==13)event.keyCode=9"><br>
<input onkeydown="if(event.keyCode==13)event.keyCode=9"><br>
<input onkeydown="if(event.keyCode==13)event.keyCode=9"><br>

解决方案 »

  1.   

    我觉得实现方法应该有四个要点:
    一、定义表单中文本框和选择项的跳转顺序;
    二、拦截Enter键的输入;
    三、拦截Shift(左、右)+Enter键的输入;
    四、跳转部分:如果访问者按了Enter键或者Shift+Enter键,就根据按键时所在的文本框或选择项的自定义序号进行相应跳转。
      

  2.   

    因为文本框和选择项之间会有一些链接,所以正常按Tab时是在所有项目之间轮流聚焦的,但我只想在文本框和选择项之间切换,而忽略其中夹杂的普通链接,所以必须要定义跳转顺序,不知道我这么解释,大家是否能够明白我的意图?
      

  3.   

    function enter2tab()  //网页里按回车时焦点的转移
    {
      var e = document.activeElement;
      var b = (e.tagName == "INPUT"
        && window.event.keyCode == 13
        && ( e.type == "text"
        || e.type == "password"
        || e.type == "checkbox"
        || e.type == "radio")
        || e.tagName=="SELECT");  var a = document.forms[0].elements, n=-1;
      for(var i=0; i<a.length; i++)
      {
        if(a[i]==e) n=i;
        if(n>-1 && b && n+1<a.length)
        {
          if(!a[n+1].disabled)
          {
            a[n+1].focus();
            window.event.keyCode    = 0;
            window.event.returnValue= false;
            return;
          }
          n=i;
        }
      }
    }
      

  4.   

    那就不要使用tab方式,
    直接
    obj.focus() ;
      

  5.   


    meizz(梅花雪) 的方法不错,测试过了,Enter键的效果实现了,但Shift+Enter组合键应该如何截取呢?另外,我发现我的设计有一个漏洞:就是textarea区域内无法用Enter键来跳转到其他地方,因为textarea区域内本身就用Enter键来换行的,大家有什么好的解决思路吗?
    谢谢meizz(梅花雪)、stefli((桂电)),我下午再测试一下,晚上结贴。
      

  6.   

    如果是Netscape浏览器
    触发的函数上加行参e,然后e.which代替event.keyCode
      

  7.   


    还有一点不明白:if(!a[n+1].disabled)中的disabled是什么意思?