给你一个例子:
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script language="javascript">
var cols=3;
var obj;
var CanMove=false;
var key;
function setobj(input){
obj=input;
}function init(){
document.onkeydown=keyDown;
document.onkeyup=keyUp;
}function keyDown(DnEvents){
var key=window.event.keyCode;
if(key==116){
window.event.keyCode=0;
return false;
}
if(key==8){
if(event.srcElement.tagName!="INPUT"){
event.cancelBubble = true;
event.returnValue = false;
return false;
}
}
var IsCtrl=window.event.ctrlKey;
if(!IsCtrl){
return;
}
for(var i=0;i<document.forms[0].elements.length;i++){
if(document.forms[0].elements[i]==obj){
if (key == 37){//←
if(i>0){
document.forms[0].elements[i-1].focus();
}
}
if (key == 38){//↑
if(i>cols-1){
document.forms[0].elements[i-cols].focus();
}
}
if (key == 39){//→
if(i<document.forms[0].elements.length-1){
document.forms[0].elements[i+1].focus();
}
}
if (key == 40){//↓
if(i<document.forms[0].elements.length-cols){
document.forms[0].elements[i+cols].focus();
}
}
}
}}function keyUp(UpEvents){
return false;
}
</script>
</head><body bgcolor="#FFFFFF" text="#000000" onload="init()">
<form>
<table border="0" cellspacing="0" cellpadding="0" align="center">
  <tr>
    <td>
      <input type="text" name="textfield" onfocus="setobj(this)">
    </td>
    <td>
      <input type="text" name="textfield2" onfocus="setobj(this)">
    </td>
    <td>
      <input type="text" name="textfield3" onfocus="setobj(this)">
    </td>
  </tr>
  <tr>
    <td> 
      <input type="text" name="textfield5" onfocus="setobj(this)">
    </td>
    <td> 
      <input type="text" name="textfield6" onfocus="setobj(this)">
    </td>
    <td> 
      <input type="text" name="textfield7" onfocus="setobj(this)">
    </td>
  </tr>
</table>
</form>
用Ctrl+方向键可以方便的在控件中移动,你也可以自己改成不要Ctrl的。
</body>
</html>

解决方案 »

  1.   

    <input>
    <input>
    <input>
    <script>
    function document.onkeydown(){
    with(window.event){
    if(srcElement.tagName!="INPUT")return;
    switch(keyCode){
    case 37:document.all(srcElement.sourceIndex-1).focus();break;
    case 39:document.all(srcElement.sourceIndex+1).focus();break;
    }
    }
    }
    </script>
      

  2.   

    <body>
    <table border="0" cellspacing="0" cellpadding="0" align="center">
      <tr>
        <td>
          <input type="text" name="textfield">
        </td>
        <td>
          <input type="text" name="textfield">
        </td>
      </tr>
      <tr>
        <td>
          <input type="text" name="textfield">
        </td>
        <td>
          <input type="text" name="textfield">
        </td>
      </tr>
    </table>
    <script>
    function document.onkeydown(){
    with(window.event){
    if(srcElement.tagName!="INPUT")return;
    var idx=srcElement.sourceIndex;
    switch(keyCode){
    case 37:while(idx>0&&(e=document.all(--idx)))if(e.tagName=="INPUT"){e.focus();break;}break;
    case 39:while(e=document.all(++idx))if(e.tagName=="INPUT"){e.focus();break;}break;}
    }
    }
    </script>
      

  3.   

    <body>
    <table border="0" cellspacing="0" cellpadding="0" align="center">
      <tr>
        <td>
          <input type="text" name="textfield">
        </td>
        <td>
          <input type="text" name="textfield">
        </td>
      </tr>
      <tr>
        <td>
          <input type="text" name="textfield">
        </td>
        <td>
          <input type="text" name="textfield">
        </td>
      </tr>
    </table>
    <script>
    function document.onkeydown(){
    var objs=document.getElementsByTagName("INPUT")
    with(window.event){
    if(srcElement.tagName!="INPUT")return;
    for(i=0;i<objs.length;i++)if(objs[i]==srcElement)break;
    switch(keyCode){
    case 37:if(i>0)objs[i-1].focus();break;
    case 39:if(i<objs.length-1)objs[i+1].focus();break;}
    }
    }
    </script>