Rumah > Artikel > hujung hadapan web > Jquery menyedari kaedah menukar fokus input oleh Enter yang serasi dengan pelayar utama_jquery
Apabila bekerja pada projek, pelanggan meminta untuk dapat terus menukar input (fokus) dengan enter, dan apabila yang terakhir dicapai, maklumat boleh diserahkan terus.
Idea pertama ialah menyalin sekeping kod dalam talian dan menggunakannya secara langsung. Tetapi selepas mencari di Baidu dan Google, lebih daripada 80% kod yang ditemui adalah sama. Sesetengah kod terlalu lama dan tidak boleh digunakan. Sesetengahnya hanya berfungsi dengan beberapa penyemak imbas. Selepas bergelut selama setengah jam, saya masih tidak dapat mencari penyelesaian yang sesuai. Pada pemikiran terakhir, saya mungkin melakukannya sendiri.
1. Idea
Setiap kali anda mengklik Enter, dapatkan kedudukan fokus semasa, dan kemudian tetapkan elemen seterusnya untuk mendapatkan fokus
2. Kod
<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>
Antaranya, kerana IE dan Firefox memperoleh nilai utama secara berbeza, pertimbangan mudah dibuat pada pelayar. Dengan cara ini anda boleh mendapatkan nilai utama yang anda tekan pada setiap penyemak imbas.
Akhir sekali, selepas mendapat nilai semasa, anda boleh menambah pelbagai syarat lain.
Alamat demo: http://demo.jb51.net/js/2014/jsenterqiehuan/