逐梦论坛's Archiver

shillan 发表于 2018-10-9 11:26

js实现input输入框按回车键后光标跳到下一个输入框

在html页面中有多个input 输入框,如何通过原生js或者jquery怎么实现:按回车键光标自动移动到下一个输入框。



1.原生Js实现:
[quote]<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gbk">
    <script type="text/javascript">
      function focusNextInput(thisInput){
          var inputs = document.getElementsByTagName("input");
          for(var i = 0;i<inputs.length;i++){
            // 如果是最后一个,则焦点回到第一个
            if(i==(inputs.length-1)){
              inputs[0].focus();
              break;
            }else if(thisInput == inputs[i]){
              inputs[i+1].focus();
              break;
            }
          }
      }  
    </script>
  </head>
<body>
  <table>
    姓名:<input type="text" onkeypress="if(event.keyCode==13) focusNextInput(this);">
    年龄:<input type="text" onkeypress="if(event.keyCode==13) focusNextInput(this);">
    工号:<input type="text" onkeypress="if(event.keyCode==13) focusNextInput(this);">
  </table>
</body>
</html>[/quote]


2.Jquery实现:
[quote]/**
* 回车时跳转到下一个元素
* @Author   HTL
* @DateTime  2016-12-30T11:33:25+0800
* @param     {[type]}                 $input [INPUT 元素列表]
* @return    {[type]}                        [description]
*/
function keydown_to_tab($input){
  if(!$input) $input = $('input:text:not(:disabled)');
  $input.bind("keydown", function(e) {
    var n = $input.length;
    if (e.which == 13){
          e.preventDefault(); //Skip default behavior of the enter key
          var nextIndex = $input.index(this) + 1;
          if(nextIndex < n)
              $input[nextIndex].focus();
          else
              $input[nextIndex-1].blur();
    }
  });
}[/quote]

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.