Lorsqu'il travaillait sur un projet, le client demandait de pouvoir changer directement de saisie (focus) avec entrée, et lorsque la dernière était atteinte, les informations pouvaient être soumises directement.
La première idée est de copier un morceau de code en ligne et de l'utiliser directement. Mais après une recherche sur Baidu et Google, plus de 80 % des codes trouvés étaient identiques. Certains codes sont trop anciens et ne peuvent pas être utilisés. Certains ne fonctionnent qu'avec certains navigateurs. Après avoir lutté pendant une demi-heure, je n'arrivais toujours pas à trouver une solution adaptée. En fin de compte, autant le faire moi-même.
1. Idées
Chaque fois que vous cliquez sur Entrée, obtenez la position actuelle du focus, puis définissez son élément suivant pour obtenir le focus ;
2.Code
<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>
Enfin, après avoir obtenu la valeur actuelle, vous pouvez ajouter diverses autres conditions.
Adresse de démonstration :