Навіть якщо ви зафіксували keydown
/ keyup
подія, це єдині події, які спрацьовує клавіша вкладки, вам все одно потрібен спосіб запобігти появі дії за замовчуванням, переходячи до наступного елемента в порядку вкладки.
У Firefox ви можете викликати preventDefault()
метод на об’єкт події, переданий вашому обробнику подій. В IE ви повинні повернути помилку з ручки події. Бібліотека JQuery надає preventDefault
метод на своєму об'єкті події, який працює в IE і 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>