В строках 1,2 и 3 мне не понятно почему в onkeydown на документе записывается null? В задании в форме 3 элемента:поле для ввода и 2 кнопки почему фокус в решении автора при использования клавиш shift и tab переходит с последнего элемента на 1й и с 1го на последний игнорируя промежуточный 21 элемент? Когда я нажимаю сочетание клавиш tab и shift или просто tab у меня последовательно фокус переходит по элементам
function complete(value) {
hideCover();
container.style.display = 'none';
document.onkeydown = null; // (1)
callback(value);
}
form.onsubmit = function() {
var value = form.elements.text.value;
if (value == '') return false; // игнорировать пустой submit
complete(value);
return false;
};
form.elements.cancel.onclick = function() {
complete(null);
};
document.onkeydown = function(e) {
if (e.keyCode == 27) { // escape
complete(null);
}
};
var lastElem = form.elements[form.elements.length - 1];
var firstElem = form.elements[0];
lastElem.onkeydown = function(e) {
if (e.keyCode == 9 && !e.shiftKey) {
firstElem.focus(); // (2)
return false;
}
};
firstElem.onkeydown = function(e) {
if (e.keyCode == 9 && e.shiftKey) {
lastElem.focus(); // (3)
return false;
}
};