![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| Гость_Андрей |
|
|||
|
Unregistered |
Надо как то организовать подстановку значений в поле, например есть поле ввода текста и оноже выпадающий список, по умолчанию значения этого списка такие: яблоко, яблоня, яша, артем.
Когда пользователь не ввел никакого текста выпадающий список состоит таким, как поумолчанию. Пользователь вводит букву я, и выпадающий список становится из элементов яблоко, яблоня, яша, теперь пользователь пишит дальше яб, и теперь список у нас из таких элементов яблоко, яблоня, теперь пользователь может писать слово до конца, или просто выбрать из списка, он решил писать до конца, пишит яблок, и список состоит из одного элемента яблоко. Как мне это организовать! |
|||
|
||||
| GoodBoy |
|
|||
![]() Главный джедай ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3886 Регистрация: 8.1.2003 Где: КМВ Репутация: 2 Всего: 83 |
А ты уверен что в JS такое вообще существует??? Я о таком и не слышал!!! Вот в Дельфи/Билдере - бывает... |
|||
|
||||
| Forza |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 12.9.2004 Репутация: 1 Всего: 2 |
Можно сделать в виде двух полей - текстового и списка. И на текстовое повесить onKeyup.
|
|||
|
||||
| Гость_Андрей |
|
|||
|
Unregistered |
А пример можно, ты млю идею понял, помоги!!! |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 1 Всего: 71 |
в <input type="text"> вводишь текст, при onKeyup вызываешь функцию, где проверяешь в
<select name=""> <option value="1" SELECTED></option> <option value="2">яблоко</option> <option value="3">яблоня</option> <option value="4">яша</option> <option value="5">артем</option> </select> опции на совпадение, если не совпадает, то эту конкретную опцию скрываешь. Что-то примерно так Это сообщение отредактировал(а) Red Dragon - 30.9.2004, 13:25 -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| Forza |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 12.9.2004 Репутация: 1 Всего: 2 |
Red Dragon, а как можно скрыть опцию у селекта? Поискав, в МСДНе такого не нашёл.
Есть только remove, но это немного не то. |
|||
|
||||
| GoodBoy |
|
|||
![]() Главный джедай ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3886 Регистрация: 8.1.2003 Где: КМВ Репутация: 2 Всего: 83 |
Я думаю только пересоздав селект заново, оставив нужные элементы!
|
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 1 Всего: 71 |
GoodBoy
Да, скорее всего. Что-то порылся, хотя у <option> есть свойство style, но display='none' применимо только к <select> Лучше будет задавать енто всё динамически, а содержимое хранить в массиме. Ща чё-нить попробую сочинить -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| Гость_Андрей |
|
|||
|
Unregistered |
Ф в java не шарю, а для пхп скрипта срочно нужну, плиз подробный пример можно!
|
|||
|
||||
| Alx |
|
|||
|
Ajaxy ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2903 Регистрация: 26.11.2003 Где: Cutopia Репутация: 10 Всего: 78 |
document.selectid.options.remove(*)
* - номер элемента в выпадающем списке. (начиная с 0, ессно) а не проще сделать div? я пожалуй такое сделаю! Это сообщение отредактировал(а) ALEXANDRO - 1.10.2004, 08:39 |
|||
|
||||
| Alx |
|
|||
|
Ajaxy ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2903 Регистрация: 26.11.2003 Где: Cutopia Репутация: 10 Всего: 78 |
|
|||
|
||||
| Гость_Андрей |
|
|||
|
Unregistered |
ALEXANDRO спасибо тебе огромное, и всем кто мучился ради меня, парни, вы меня выручили!!
|
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 1 Всего: 71 |
Отличный код..
Только не могу понять, почему если использовать не таймер, а, например, <input type="text" size="20" id="inp" onkeypress="checkFunc()"> функция вызывается с запозданием в один клик -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| Alx |
|
|||
|
Ajaxy ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2903 Регистрация: 26.11.2003 Где: Cutopia Репутация: 10 Всего: 78 |
да, я тоже с этим намучился! пришлось таймер сделать. всё из-за того, что текст вводится после выполнения функции, а надо перед!... PS .... 2 Sardar... Это сообщение отредактировал(а) ALEXANDRO - 1.10.2004, 12:56 |
|||
|
||||
| GoodBoy |
|
|||
![]() Главный джедай ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3886 Регистрация: 8.1.2003 Где: КМВ Репутация: 2 Всего: 83 |
Потребовать - явно не можешь!!! |
|||
|
||||
| Alx |
|
|||
|
Ajaxy ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2903 Регистрация: 26.11.2003 Где: Cutopia Репутация: 10 Всего: 78 |
GoodBoy , да ты чё, я ж пошутил!!!!! ....... |
|||
|
||||
| GoodBoy |
|
|||
![]() Главный джедай ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3886 Регистрация: 8.1.2003 Где: КМВ Репутация: 2 Всего: 83 |
ALEXANDRO
А ты что мою фразу всерьёз воспринял??? |
|||
|
||||
| Alx |
|
|||
|
Ajaxy ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2903 Регистрация: 26.11.2003 Где: Cutopia Репутация: 10 Всего: 78 |
уфф... да! .... так фсё, не флудим, а то накажут. меня-то точно. |
|||
|
||||
| Гость_Андрей |
|
|||
|
Unregistered |
Вот теперь какая проблемма, если я из базы добавляю около 700 пунктов, то браузер виснет, неуспевает обновляться!
|
|||
|
||||
| GoodBoy |
|
|||
![]() Главный джедай ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3886 Регистрация: 8.1.2003 Где: КМВ Репутация: 2 Всего: 83 |
Гость_Андрей Ещё бы!!!!!!!!!!!! :-)))))))))))
|
|||
|
||||
| Гость_Андрей |
|
|||
|
Unregistered |
А нельзя ускорить, используя не таблицы, а выпад. список??? |
|||
|
||||
| Alx |
|
|||
|
Ajaxy ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2903 Регистрация: 26.11.2003 Где: Cutopia Репутация: 10 Всего: 78 |
тормозит не из-за этого, а из-за того, что он не успевает обработать все данные за одну секунду. на досуге придумаю (по крайней мере, постараюсь) решение.
Добавлено @ 17:55 то есть, за одну тысячную секунды.... гы. |
|||
|
||||
| Гость_Андрей |
|
|||
|
Unregistered |
Плиззз, жду! |
|||
|
||||
| Alx |
|
|||
|
Ajaxy ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2903 Регистрация: 26.11.2003 Где: Cutopia Репутация: 10 Всего: 78 |
мне вот интересно... почему
не работает
памяти не хватает... а так - самое оно! |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
ALEXANDRO я тебе плюс поставил за "грамотный код"... ты знаешь, за такой код из комсомола исключать надо!!!
Честно, прежде чем писать, думайте Мой вариант, убил 2 часа:
-------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| Alx |
|
|||
|
Ajaxy ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2903 Регистрация: 26.11.2003 Где: Cutopia Репутация: 10 Всего: 78 |
Sardar
он теперь во всех браузерах работает? у меня, кстати, сам отбор не работает, т.е. я ввожу, что хочу, а в диве ничего не изменяется! и ещё при прокрутке дива, он исчезает, mouseover'а нету! а, я понял - ты просто делаешь прокрутку в то место! Оригинально! |
|||
|
||||
| Sardar |
|
||||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Да, иначе не пишу
Вот здесь трабла, окошко появляется по событию focus и исчезает по blur в селекте. Пауза при скрытии стоит, дабы позволить другим событиям отработать прежде чем окошко исчезнет. Если этого не сделать, то при клике на слове в окошке, оно не вставится в текстовое поле. При прокрутке окошка мы теряем фокус с поля и у нас есть 100мс на выбор элемента Возможное решение: ловим клик на доументе, скрываем окошко; по blur ставим таймер на 5 сек, далее скрываем, по focus и mouseover в окошке оттягиваем скрытие еще на N времени. Думайте, решайте Обьясню коротко как все работает, вчера времени на это не было. Создается фишка на существующем поле при вызове функцииcreateList. Аргументы: родительское_текстовое_поле, масив_слов_в_окошке. Можно создавать сколько угодно таких контролов для каждого текстового поля, вся инфа о них хранится в массиве createList.sel_list_info. Весь смысл функции создать юзая DOM окошко(DIV.style.overflow="auto"), набить его данными и зарегистрировать обработчиков событий. Обработчики row_mouse_out, row_mouse_over - вопросов вызывать не должны, отвечают за выделение строк в окошке. Их можно реализовать анонимными функциями(см. onfocus, onblur текстового поля). row_click - вставляет текст из окошка в поле. Обработчик list_input_keypress ловит событие keypress на текстовом поле и выполняет поиск подходящих значений. Используется бинарный поиск в отсортированном по возрастанию массиве, вспомним что в худшем случае число операций O(log2(arr.lngth)+7). В принципе можно реализовать префиксное дерево, но не думаю что в JS оно будет работать быстрее. Видим что если чутьчуть подумать, то можно писать быстро работающие проги -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
||||
|
|||||
| Гость_Андрей |
|
|||
|
Unregistered |
А твой скрипт с 1000 записей будет быстро работать??? И с сортировко проблемма, когда пишим там слово vsem вывод. все на V но при этом слово vsem ниже слова vingrad
|
|||
|
||||
| Sardar |
|
||||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Да, для этого он и писался. Бинарный поиск найдет значение за логарифмическое время.
В алфовитном порядке слово vsem стоит дальше чем vingrad А внизу оно стоит, т.к. прокручивать дальше некуда -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
||||
|
|||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |