美文网首页
js实现方向键切换输入框的方法

js实现方向键切换输入框的方法

作者: stone_yao | 来源:发表于2016-03-28 23:29 被阅读446次

    http://www.jb51.net/article/71263.htm

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>JS方向键切换输入框焦点</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    </head>
    <body>
    <table border="1" id="mm" onkeydown="keyDown(event)"> 
    <tr> <td> <input> </td> <td> <input> </td> <td> <input> </td> <td> <input> </td> </tr>
    <tr> <td> <input> </td> <td> <input> </td> <td> <input> </td> <td> <input> </td> </tr> 
    <tr> <td> <input> </td> <td> <input> </td> <td> <input> </td> <td> <input> </td> </tr>
    <tr> <td> <input> </td> <td> <input> </td> <td> <input> </td> <td> <input> </td> </tr> 
    <tr> <td> <input> </td> <td> <input> </td> <td> <input> </td> <td> <input> </td> </tr>
    </table> 
    <script language="javascript" type="text/javascript"> 
    <!-- 
    var inputs=document.getElementById("mm").getElementsByTagName("INPUT"); 
    function keyDown(event) 
    { 
    var focus=document.activeElement; 
     if(!document.getElementById("mm").contains(focus)) return; 
     var event=window.event||event;
     var key=event.keyCode; 
     for(var i=0; i<inputs.length; i++) 
     { 
      if(inputs[i]===focus) break; 
     } 
     switch(key) 
     { 
      case 37: 
       if(i>0) inputs[i-1].focus(); 
       break; 
      case 38: 
       if(i-4>=0) inputs[i-4].focus(); 
       break; 
      case 39: 
       if(i<inputs.length-1) inputs[i+1].focus(); 
       break; 
      case 40: 
       if(i+4 <inputs.length) inputs[i+4].focus(); 
       break; 
     }
    } 
    //--> 
    </script>
    </body>
    </html>
    

    解读

    1.document.activeElement:获取当前焦点所在的元素,用户敲击键盘时,这个元素可以获取键盘的事件。只读属性。在mac上只有input[type=text]和textarea可以被分配焦点。这个属性可以是input (text/button/radio/checkbox)或者textarea。可以用本例中的方法切换焦点或者使用tab,然后用空格键激活(按按钮或者选择一个单选框)---https://developer.mozilla.org/en-US/docs/Web/API/Document/activeElement
    2.contains:返回布尔值,确定当前元素是否是指定元素的后代元素,相同元素也是true。

    相关文章

      网友评论

          本文标题:js实现方向键切换输入框的方法

          本文链接:https://www.haomeiwen.com/subject/oizjlttx.html