Переключение ключевых событий без рамок - PullRequest
2 голосов
/ 01 февраля 2011

Не могу поверить, что об этом раньше не спрашивали (я искал и искал), но в любом случае.

Как я могу переключать ключевые события с помощью чистого JS?

Например, я хочу переключить кнопку Enter, чтобы имитировать кнопку Tab. (Я хочу иметь возможность нажать Enter, не отправляя форму, и вместо этого переключить поля в режим, подобный Tab, например переключить поля формы)

1 Ответ

2 голосов
/ 01 февраля 2011
var enter = 13;
if (e.which === enter) {
    // tabs to next field
    getNextField(e.srcElement).focus();
    // stops default enter
    event.preventDefault();
    event.stopPropagation();
}

реализовать getNextField (), используя .tabindex

function getNextField(obj) {
   var next = obj.tabIndex + 1;
   var all = document.getElementsByTagName("*");
   for (var i in all) {
       if (all[i].tabIndex === next) {
           all[i].focus();
           break;
       }

   }
}

Это должно дать вам смутное представление о том, как это сделать. Вычеркните псевдокод самостоятельно.

...