做項目時,客戶要求能夠用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和火狐對鍵值獲取的不同,所以對瀏覽器做了簡單的判斷區分。這樣就可以在各個瀏覽器上獲取敲擊的鍵值。
最后,獲取到當前的值以后,就可以加其它的各種條件了。
新聞熱點
疑難解答