http://expert.csdn.net/Expert/topic/1941/1941721.xml?temp=.1294062

解决方案 »

  1.   

    这是用方向键控制的,<body>
    <center>
         <input type="reset" value="Test1"    name="a1">
         <input type="reset" value="Test2"    name="a2">
         <br>    
         <input type="text" name="T1" onkeydown = "ReachNext(this)"value = 0>            
         <input type="text" name="T2" onkeydown = "ReachNext(this)"value = 1>        
         <input type="text" name="T3" onkeydown = "ReachNext(this)"value = 2>        
         <input type="text" name="T4" onkeydown = "ReachNext(this)"value = 3> 
         <br>
         <input type="text" name="T5" onkeydown = "ReachNext(this)"value = 4>            
         <input type="text" name="T6" onkeydown = "ReachNext(this)"value = 5>        
         <input type="text" name="T7" onkeydown = "ReachNext(this)"value = 6>        
         <input type="text" name="T8" onkeydown = "ReachNext(this)"value = 7> 
         <br>
         <input type="submit" value="Test3"  name="b1">        
         <input type="submit" value="Test4"  name="b2">          
    </center>
    </body>
    <script>
    //****************************************************
    //*         ReachNext(NowText):生成两个只包含  *  
    //*         Text 元素的数组,两个数组的元素互  *
    //*         逆(Arr_Next()和Arr_Bef()),并且  *
    //*         调用函数MoveNext(ArrName,TagName)  *
    //*         来回在 Text 元素间移动光标  *
    //*         参数:NowText:光标所在 Text的引用        *
    //*         作者:月影飞鸿  2003/06/21               *
    //****************************************************
    function ReachNext(NowText)
    {
     var i,j=0;
     var TextName;
     var Arr_All  = new Array();
     var Arr_Next = new Array();
     var Arr_Bef  = new Array();
     var Next_Len;
     
     KeyCode = event.keyCode;
     TextName = NowText.name;   
     Arr_All = document.getElementsByTagName("input");
     for (i = 0;i < Arr_All.length - 1 ; i++)
     {
       if (Arr_All[i].type == "text")
       {
        Arr_Next[j] = Arr_All[i];
        j = j + 1;
       }   
     }
     Next_Len = Arr_Next.length ;
     for (i = 0 , j = Next_Len - 1 ; i < Next_Len ; i++ , j--)
     {
      Arr_Bef[j] = Arr_Next[i]; 
     } 
     if (KeyCode == 39)
     {
        MoveNext(Arr_Next , TextName);
     }
     if (KeyCode == 37)
     { 
        MoveNext(Arr_Bef  , TextName);
     }}
    //*****************************************************
    //*     MoveNext(ArrName,TagName):移动到下一个 Text   *
    //*     参数:ArrName:包含全部 Text 元素的数组        *
    //*           TagName:光标所在 Text 元素的名字        *
    //*****************************************************
    function MoveNext(ArrName,TagName)
    {
    for (i = 0 ;i <ArrName.length-1;i++)
        {     
         if (TagName == ArrName[i].name)
        {
             eval("document.all."+ArrName[i+1].name+".focus()");
            return true;   
        }
        } 
    if (TagName == ArrName[i].name)
    {
           eval("document.all."+ArrName[0].name+".focus()");
        }
    }</script>