我希望能够使用Tab文本框中的键在四个空格之间切换。现在,Tab键将光标跳到下一个输入。
Tab
是否有一些JavaScript可以在气泡进入UI之前捕获文本框中的Tab键?
我了解某些浏览器(即FireFox)可能不允许这样做。像Shift+ Tab或Ctrl+ 这样的自定义按键组合怎么样Q?
Shift
Ctrl
Q
即使捕获了keydown/ keyup事件,这些也是tab键触发的唯一事件,您仍然需要某种方法来防止发生默认操作,即按tab键顺序移动到下一个项目。
keydown
keyup
在Firefox中,您可以preventDefault()在传递给事件处理程序的事件对象上调用方法。在IE中,您必须从事件句柄返回false。JQuery库preventDefault在其事件对象上提供了一种在IE和FF中工作的方法。
preventDefault()
preventDefault
<body> <input type="text" id="myInput"> <script type="text/javascript"> var myInput = document.getElementById("myInput"); if(myInput.addEventListener ) { myInput.addEventListener('keydown',this.keyHandler,false); } else if(myInput.attachEvent ) { myInput.attachEvent('onkeydown',this.keyHandler); /* damn IE hack */ } function keyHandler(e) { var TABKEY = 9; if(e.keyCode == TABKEY) { this.value += " "; if(e.preventDefault) { e.preventDefault(); } return false; } } </script> </body>