【转】 js键盘上下左右(方向键)事件 - lzc_learn_tech

时间:2024-02-21 12:59:13

<script language="javascript">
function keygo(evt,cols){
  var cols=cols//列数,手动设置
  var elobj=myform.elements.length;
  //key=window.event.keyCode;不兼容firefox

  key = window .event?evt.keyCode:evt.which; 
  if (key==38){//↑
      CurTabIndex=event.srcElement.tabIndex-cols
      for (n=0;n<myform.elements.length;n++){
      if (myform.elements[n].tabIndex==CurTabIndex){
        myform.elements[n].select();
        return true;
            }
        }
    }
  if (key==40){//↓
      CurTabIndex=event.srcElement.tabIndex+cols
    for (n=0;n<myform.elements.length;n++){
      if (myform.elements[n].tabIndex==CurTabIndex){
        myform.elements[n].select();
        return true;
      }
    }
    }
  if (key==37){//←
      CurTabIndex=event.srcElement.tabIndex-1
      for (n=0;n<myform.elements.length;n++){
      if (myform.elements[n].tabIndex==CurTabIndex){
        myform.elements[n].select();
        return true;
            }
        }
    }
  if (key==39){//→
      CurTabIndex=event.srcElement.tabIndex+1
    for (n=0;n<myform.elements.length;n++){
      if (myform.elements[n].tabIndex==CurTabIndex){
        //myform.elements[n].focus();
        myform.elements[n].select();
        return true;
      }
    }
    }
}
</script>

<table width="100%" border="0" cellspacing="0" cellpadding="5">
<form name="myform" id="myform" method="post" onKeyUp="return keygo(event,5)">
  <tr>
    <td><input name="textfield1" type="text" id="textfield" value="有文字也会跳过" /></td>
    <td><input type="text" name="textfield" id="textfield" /></td>
    <td><input type="text" name="textfield" id="textfield" /></td>
    <td><input type="text" name="textfield" id="textfield" value="1netmedia.cn" /></td>
    <td><input type="text" name="textfield" id="textfield" /></td>
  </tr>
  <tr>
    <td><input type="text" name="textfield" id="textfield" /></td>
    <td><input name="textfield" type="text" id="textfield" value="有文字也会跳过" /></td>
    <td><input type="text" name="textfield" id="textfield" /></td>
    <td><input type="text" name="textfield" id="textfield" /></td>
    <td><input type="text" name="textfield" id="textfield" value="1NetMedia Studio" /></td>
  </tr>
  <tr>
    <td><input type="text" name="textfield" id="textfield" value="有文字也会跳过" /></td>
    <td><input type="text" name="textfield" id="textfield" /></td>
    <td><input name="textfield" type="text" id="textfield" value="1netmedia.net" /></td>
    <td><input type="text" name="textfield" id="textfield" /></td>
    <td><input type="text" name="textfield" id="textfield" /></td>
  </tr>
  <tr>
    <td><input type="text" name="textfield" id="textfield" /></td>
    <td><input type="text" name="textfield" id="textfield" /></td>
    <td><input type="text" name="textfield" id="textfield" /></td>
    <td><input type="text" name="textfield" id="textfield" value="『一网传媒』" /></td>
    <td><input type="text" name="textfield" id="textfield" /></td>
  </tr>
  <tr>
    <td><input type="text" name="textfield" id="textfield" /></td>
    <td><input type="text" name="textfield" id="textfield" value="技术交流" /></td>
    <td><input type="text" name="textfield" id="textfield" /></td>
    <td><input type="text" name="textfield" id="textfield" /></td>
    <td><input type="text" name="textfield" id="textfield" /></td>
  </tr>
</form>
</table>

<script type="text/javascript">
  myform.textfield1.focus();
  for (n=0;n<myform.elements.length;n++){
    myform.elements[n].tabIndex=n;
  }