用上下光标吧,我这就是这么用的。
<script language=javascript>
function numok(fname)    //fname为取出当前input的变量
{
 ok1=window.event.keyCode;
 var k1;
  if(ok1==38)
     {
       for(k=1;k<add.elements.length;k++)
           {
             if(add.elements[k].name==fname)
                {k1=k-1;
                 add.elements[k1].focus();
               }
           }
 
     }
  if(ok1==40)
     {
       for(k=1;k<add.elements.length;k++)
           {
             if(add.elements[k].name==fname)
                {k1=k+1;
                 add.elements[k1].focus();
               }
           }
 
     }  
  
 }
</script>
<form name=add>
<input name=a1 onKeyDown="return numok(this.name)">
<input name=a2 onKeyDown="return numok(this.name)">
<input name=a3 onKeyDown="return numok(this.name)">
</form>

解决方案 »

  1.   

    wyhkgd() 
      我其实上下左右键都要用的,上下键我可以实现了,现在就要求按提出的问题来做。
      还过还是谢谢你
      

  2.   

    <script language=javascript>
    function numok(obj)    //fname为取出当前input的变量
    {   
     var fname=obj.name;
     var k1; 
     ok1=window.event.keyCode;  if(ok1==38)
         {
           for(k=1;k<add.elements.length;k++)
               {
                 if(add.elements[k].name==fname)
                    {k1=k-1;
                     add.elements[k1].focus();
                   }
               }
     
         }
      if(ok1==40)
         {
           for(k=0;k<add.elements.length;k++)
               {
                 if(add.elements[k].name==fname)
                    {k1=k+1;
                     add.elements[k1].focus();
                   }
               }
     
         }  
      if(ok1==37||ok1==8)
      { 
       var s=document.selection.createRange();
       s.setEndPoint("StartToStart",obj.createTextRange())
       if(s.text.length<1)
         {
              for(k=1;k<add.elements.length;k++)
               {
                 if(add.elements[k].name==fname)
                    {k1=k-1;
                     add.elements[k1].focus();
                   }
               }
          }
         
      }   if(ok1==39)
      { 
       var s=document.selection.createRange();
       s.setEndPoint("StartToStart",obj.createTextRange())
       if(obj.value.length-s.text.length<1)
         {
              for(k=0;k<add.elements.length;k++)
               {
                 if(add.elements[k].name==fname)
                    {k1=k+1;
                     add.elements[k1].focus();
                   }
               }
          }
         
      }  
     if((ok1<37 || ok1>40) && (obj.value.length>=6) ) //如果超过6个字符自动移动到下一下,6可以自行更改
       {   for(k=0;k<add.elements.length;k++)
               {
                 if(add.elements[k].name==fname)
                    {
                     k1=k+1;
                     add.elements[k1].focus();
                   }
               }  } }
    </script>
    <form name=add>
    <input name=a1 onKeyDown="return numok(a1)" onfocus="if(this.value!='')this.select();">
    <input name=a2 onKeyDown="return numok(a2)" onfocus="if(this.value!='')this.select();">
    <input name=a3 onKeyDown="return numok(a3)" onfocus="if(this.value!='')this.select();">
    <input type="submit">
    </form>
      

  3.   

    把if((ok1<37 || ok1>40) && (obj.value.length>=6)) 
    改if((ok1<37 || ok1>40 ||ok1!=8) && (obj.value.length>=6)) 
      

  4.   

    错了,不好意思,改为:if(((ok1<37 || ok1>40) &&  ok1!=8) && (obj.value.length>=6) )
      

  5.   

    常用键值(event.keyCode)
    //回车 13
    //鼠标左键 0
    //Esc键 27
    //BackSpace键 8
    //tab键 9
    //←↑→↓ 37、38、39、40
    //空格 32