Ngay cả khi bạn nắm bắt sự kiện keydown/keyup, đó là những sự kiện duy nhất mà phím tab kích hoạt, bạn vẫn cần một số cách để ngăn tác vụ mặc định, chuyển sang mục tiếp theo trong thứ tự tab.
Trong Firefox, bạn có thể gọi phương thức preventDefault()
trên đối tượng sự kiện được chuyển đến trình xử lý sự kiện của bạn. Trong IE, bạn phải trả về false từ xử lý sự kiện. Thư viện JQuery cung cấp một phương thức preventDefault trên đối tượng sự kiện của nó hoạt động trong IE và FF.
<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>
Bài đăng này có được người kiểm duyệt gắn cờ là "thuộc về meta.stackoverflow.com", nhưng đã hơn hai năm, vì vậy tôi không di chuyển nó. –
Đừng quên kiểm tra cửa sổ lấy nét và để cho nó bong bóng bình thường nếu bạn không ở trong vùng soạn thảo. – FlySwat