Я пытаюсь создать простую форму отправки в WYSIWYG Web Designer 10, но у меня есть БОЛЬШАЯ проблема с клавишей Enter. В форме есть несколько полей редактирования, и я хотел бы иметь следующую функциональность (через JavaScript): 1. Введите ключ в поле «Редактировать», не должны отправлять форму. 2. Введите ключ в поле редактирования, чтобы установить фокус на следующий элемент (окно редактирования или кнопка отправки). Кнопка Submit - последний элемент в порядке tabIndex. 3. Чтобы отправить форму, пользователь должен: либо нажать кнопку отправки, или нажать Enter, когда кнопка отправки имеет фокус. 4. Должен работать в любом браузере.JavaScript & отправить форму & Enter & set focus to next element
Это фрагмент, который работает очень хорошо (она устанавливает фокус на следующий элемент):
var elem = document.activeElement;
var tidx = +(elem.getAttribute('tabindex')) +1,
elems = document.getElementsByTagName('input');
for (var i=elems.length; i--;)
{
var tidx2 = elems[i].getAttribute('tabindex');
if (tidx2 == tidx) elems[i].focus();
}
Единственная проблема у меня есть Введите ключ (KEYCODE) проверки, которая должна перед кодом изменить фокус. Я тестировал FF 32, PaleMoon 25 (клон FF), Chrome 38 & IE 10.
Большое спасибо за ваше время заранее.
P.S. Я новичок в JavaScript. Я использую для работы с MS Access, где подобная проблема будет решена в течение двух минут. Я потратил несколько часов на эту простую задачу, но не повезло. Я попробовал много примеров, которые я нашел в Интернете (включая stackoverflow.com). Что касается события обработки (где я пытаюсь проверить keyCode), различные браузеры ведут себя по-разному.
Что неправильно использовать клавишу TAB для перехода к следующему полю? –
Вы понимаете, что подобный подход подрывает установленный пользовательский интерфейс, с которым ваши пользователи уже знакомы, форм HTML? Если вы явно не подписываете эту реализацию * и * пользователи просили об этом, подумайте об этом. Кстати, вам действительно нужно добавить HTML в свой фрагмент, чтобы сделать этот код значимым. –
@ Weather Vane: пользователи продолжают нажимать Enter вместо Tab. – StreamLine