首页 > 代码库 > Enter回车切换输入焦点方法兼容各大浏览器

Enter回车切换输入焦点方法兼容各大浏览器

做项目时,客户要求能够用enter回车直接切换输入(焦点),当最后一个时候,直接提交信息。

第一想法就是,网上去copy一段代码直接用。但了百度、谷歌找了个遍,找到的代码80%以上都是一样的。有的代码太老,都不能用。有的只有部分浏览器能用。折腾了半小时也没个合适的办法。最后一想,干脆自己动手。

一、思路

  每次点击回车的时候,获取当前的焦点位置,然后设置它的下一个元素获取焦点;

 

二、代码

<script type="text/javascript">

$(‘input:text:first‘).focus();

document.onkeydown = function enterHandler(event)

{

     var inputs = $("input");                     //可自行添加其它过滤条件    

     var browser = navigator.appName ;            //浏览器名称

     var userAgent = navigator.userAgent;         //取得浏览器的userAgent字符串

    

     var Code = ‘‘ ;

     if(browser.indexOf(‘Internet‘)>-1)            // IE   

        Code = window.event.keyCode ;

     else if(userAgent.indexOf("Firefox")>-1)     // 火狐

        Code =  event.which;

     else                                         // 其它

         Code = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;

   

     if (Code == 13)                             //可以自行加其它过滤条件

     {

         for(var i=0;i<inputs.length;i++)

         {

            if(inputs[i].id == document.activeElement.id)

            {   

                i = i== (inputs.length - 1) ? -1 : i ;

                $(‘#‘+ inputs[i+1].id ).focus()

                break;

            }

         }

      }

}

 

</script>

复制代码
其中,因为IE和火狐对键值获取的不同,所以对浏览器做了简单的判断区分。这样就可以在各个浏览器上获取敲击的键值。

最后,获取到当前的值以后,就可以加其它的各种条件了。

Enter回车切换输入焦点方法兼容各大浏览器