Программирование > JavaScript & JScript

Автовыбор текста

(1/2) > >>

Yourock:
Помогите, пожалуйста, сделать такую фишку:
Есть выпадающий список, где содержаться данные (например, фамилии): ---, иванов, ивушкин, петров, сидоров. По умолчанию выбирается прочерк. Допустим, этот список находится в форме, где много полей... шагаем по ним табом. И вот добрались до фамилий (поле активно).
Как сделать так, чтобы при вводе на клаве "и" появлялась фамилия "Иванов", при дальнейшем вводе "ву" - выбиралась фамилия "Ивушкин". Если нажать на "Backspace", то возвращаемся к "ив" и выбирается первое (в алфавитном порядке) слово "Иванов".
Такая фишка встречается в некоторых программах, а как сделать ее на JS - не знаю...

html_coder:
Yourock Нужно для этого select обрабатывать события от клавиатуры onKeyPress, onKeyUp, OnKeyDown, смотреть что за клавиши нажимает пользователь и смотреть есть ли соответствующие значения в элементах списка, если есть, то устанавливать соответствуеющий option для select.

Я тебе примерно описал как это делается, дальше просто нужно сесть и пробовать писать!

Yourock:
Ну что ж, спасибо. Буду пробовать... Просто я примерно так себе это и представлял, но КАК ИМЕННО обрабатывать этот селект - пока не могу понять...

html_coder:
Примерно так:


<select onKeyPress="keypress_handler(event)">
<option>Иванов</option>
<option>Петров</option>
<option>Сидоров</option>
</select>
<script language="JavaScript" type="text/javascript">
function keypress_handler()
{

/*
Можно просто собирать в какую-то переменную набираемую комбинацию симвлов, если пользователь нажал backspace стирать последний символ.

Набранную последовательность сравнивать при помощи строковых методов с значениями в option, если нашёл в каком-нибудь option, значение которое содержит в себе то, что набрал пользоваитель, то просто для этого select устанавливаешь value = равное этому значению.

Алгоритм примерно такой!

Дальше в любом случае надо пробовать самому!

*/

}
</script>

Yourock:
Спасибо большое.

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии