<script language="javascript">
var cols=2;
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==8){
if(event.srcElement.tagName!="INPUT"){
event.cancelBubble = true;
event.returnValue = false;
return false;
}
} for(var i=0;i<document.forms[0].elements.length;i++){
if(document.forms[0].elements[i]==obj){if (event.keyCode==13)//RETURN
{
if(i<document.forms[0].elements.length-1){
document.forms[0].elements[i+1].focus();
}
} 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>
<body bgcolor="#FFFFFF" text="#000000" onload="init()">
<form>
<table border="0" cellspacing="0" cellpadding="0" align="center">
  <tr>
    <td>
      <input type="text" name="BALLACK" onfocus="setobj(this)">
    </td>
    <td>
      <input type="text" name="BALLACK2" onfocus="setobj(this)">
    </td>
  </tr>
  <tr>
    <td> 
      <input type="text" name="BALLACK3" onfocus="setobj(this)">
    </td>
    <td> 
      <input type="text" name="BALLACK4" onfocus="setobj(this)">
    </td>
  </tr>
</table>
</form>
方向键自由移动,回车键顺序移动
</body>
</html>

解决方案 »

  1.   

    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <script language="JavaScript">function keyDown(left,right,up,down,enter)

    k = event.keyCode ; 
    switch(k)
    {
      case 38:
         eval('document.MyForm.' + up + '.focus()');
         break;
      case 37:
         eval('document.MyForm.' + left + '.focus()');
         break;
      case 39:
         eval('document.MyForm.' + right + '.focus()');
         break;
      case 40:
         eval('document.MyForm.' + down + '.focus()');
         break;
      case 13:
         eval('document.MyForm.' + enter + '.focus()');
         break;            
    }
       
    }</script>
    </head><body bgcolor="#FFFFFF" text="#000000">
    <form name="MyForm">
    <div id="Layer1" style="position:absolute; left:155px; top:138px; width:460px; height:184px; z-index:1"> 
      <table width="100%" border="0" cellspacing="0" cellpadding="0" height="100%">
        <tr>
          <td>
            <input type="text" name="text1" onkeydown="keyDown('text1','text2','text1','text3','text2')" >
          </td>
          <td>
            <input type="text" name="text2" onkeydown="keyDown('text1','text3','text1','text4','text3')">
          </td>
        </tr>
        <tr>
          <td>
            <input type="text" name="text3" onkeydown="keyDown('text2','text4','text1','text4','text4')">
          </td>
          <td>
            <input type="text" name="text4" onkeydown="keyDown('text3','text4','text2','text4','text4')">
          </td>
        </tr>
      </table>
    </div></Form>
    </body>
    </html>