2009-10-29 1 views
0

У меня есть окно с несколькими выборами. Я хочу, чтобы можно было выбрать несколько элементов и действовать по выбору, нажав клавишу Enter. Проблема, с которой я сталкиваюсь, заключается в том, что когда я нажимаю Enter, текущий элемент в курсоре становится единственным выбранным элементом. Остальные отменены, поэтому моя функция действует только на один элемент. Что я могу сделать, чтобы кнопка Enter не могла выбрать элемент?Предотвратить Ввод из выбора одного элемента в поле списка

Я настраиваю функцию onkeypress в javascript следующим образом. DoListKeyPress проверяет ключ ввода и действует на него.

select.onkeypress = function(e) { doListKeyPress(e, "myListName"); }; 
+1

@seppy: Общее поведение пользователя для multi-select осуществляется с помощью ctrl + click или ctrl-spacebar. Клавиша «Enter» для меня довольно странная. –

ответ

1

Добавить событие:

select.onkeydown = function(e) { if(e.keyCode == 13) select.blur(); }; 

Как keydown идет перед keypress, он установит фокус от ListBox, следовательно, браузер по умолчанию Enter поведение «обходили».

Отказ от ответственности: Этот ответ не позволяет выбрать элемент, нажав Enter. Однако это можно сделать с дальнейшей реализацией.

+0

Спасибо за указатель. Функция onkeydown успешно предотвращает выбор ключа «Ввод» одним параметром. Тем не менее, поскольку выбор размыт по нажатию клавиши, событие onkeypress никогда не запускается, поэтому мне пришлось создать функцию document.onkeypress, чтобы обработать его следующим образом. document.onkeypress = function (e) { if (e.keyCode == 13) { doListKeyPress (e, select); } }; – 2009-10-30 08:05:06

+0

@seppy, так что вы получили то, что хотите? –

Смежные вопросы