Forum Webscript.Ru

Программирование => JavaScript & JScript => Тема начата: Yourock от 12 Июня 2006, 21:54:30

Название: Автовыбор текста
Отправлено: Yourock от 12 Июня 2006, 21:54:30
Помогите, пожалуйста, сделать такую фишку:
Есть выпадающий список, где содержаться данные (например, фамилии): ---, иванов, ивушкин, петров, сидоров. По умолчанию выбирается прочерк. Допустим, этот список находится в форме, где много полей... шагаем по ним табом. И вот добрались до фамилий (поле активно).
Как сделать так, чтобы при вводе на клаве "и" появлялась фамилия "Иванов", при дальнейшем вводе "ву" - выбиралась фамилия "Ивушкин". Если нажать на "Backspace", то возвращаемся к "ив" и выбирается первое (в алфавитном порядке) слово "Иванов".
Такая фишка встречается в некоторых программах, а как сделать ее на JS - не знаю...
Название: Автовыбор текста
Отправлено: html_coder от 13 Июня 2006, 10:29:42
Yourock Нужно для этого select обрабатывать события от клавиатуры onKeyPress, onKeyUp, OnKeyDown, смотреть что за клавиши нажимает пользователь и смотреть есть ли соответствующие значения в элементах списка, если есть, то устанавливать соответствуеющий option для select.

Я тебе примерно описал как это делается, дальше просто нужно сесть и пробовать писать!
Название: Автовыбор текста
Отправлено: Yourock от 15 Июня 2006, 17:04:58
Ну что ж, спасибо. Буду пробовать... Просто я примерно так себе это и представлял, но КАК ИМЕННО обрабатывать этот селект - пока не могу понять...
Название: Автовыбор текста
Отправлено: html_coder от 15 Июня 2006, 18:35:39
Примерно так:




Название: Автовыбор текста
Отправлено: Yourock от 15 Июня 2006, 21:47:58
Спасибо большое.
Название: Автовыбор текста
Отправлено: Yourock от 04 Июля 2006, 04:33:03
Попробовал сделать предварительную проверку работоспособности части кода, но ничего не получается... В чем может быть косяк???
Вот весь код:








Суть кода - сбор нажимаемых клавиш в массив и последующий вывод, например, какого-нибудь введенного ранее символа...
Название: Автовыбор текста
Отправлено: html_coder от 04 Июля 2006, 10:13:29
Цитировать
Yourock:
В чем может быть косяк???


Косяк в том что ты считаешь размер масссива до цикла wl = word.length сразу после определения массива, т.е. она у тебя 0, т.е. условие if(wl==3) никогда не выполнится.

Совет: event надо передавать в качестве параметра в функцию TestLetters() иначе это будет работать только в IE, хотя вообще для того чтобы получить код нажатой клавиши в Mozilla, надо использовать свойство which.