Подсказка с подсказками в Javascript

Я хотел бы получить информацию от пользователя:

keywords = prompt("Input keywords separated by commas", "");

У меня есть много различных строк, хранящихся в базе данных SQLite, которые могут подсказывать пользователю, что вводить. Допустим, у вас есть массив или список этих строк. Как бы вы закодировали эту подсказку в Javascript? Есть ли какие-то функции или фрагменты кода для этой функциональности?

Я бы хотел, чтобы он работал так же, как здесь. Когда вы начинаете печатать, вы получаете подсказку с возможностями. Есть только один недостаток: нельзя вводить больше строк, разделенных запятыми. Здесь работает ли эта функция с большим количеством строк.

Подходит ли для этой цели функция prompt ()? Вы можете использовать другой способ получения пользовательского ввода.

Спасибо


person xralf    schedule 30.03.2012    source источник
comment
вы также хотите простой javascript или jquery?   -  person Bogdan Emil Mariesan    schedule 30.03.2012


Ответы (2)


Вы не можете настроить собственный метод javascript prompt ().

Я знаю, что вы не добавляли теги jQuery, но было бы проще использовать библиотеку для реализации такого поведения.

Вам придется создать свою собственную диалоговую систему, возможно, используя диалоги пользовательского интерфейса jQuery . У них есть возможность сделать его модальным, чтобы пользовательский интерфейс был заблокирован до закрытия диалогового окна.

Диалог пользовательского интерфейса jQuery не блокирует выполнение javascript, хотя, как и подсказка, это блокирует. Возможно, вам потребуется выполнить код, когда диалоговое окно закрыто. Этот ответ показывает способ реализовать это легко.

Наконец, автозаполнение пользовательского интерфейса jQuery предоставляет пример того, как использовать его для нескольких значений в одном и том же вводе. Они используют разделитель запятых, но я думаю, вы могли бы изменить пример для работы с пробелами: jQuery UIAutocomplete Multiple Values ​​

person Didier Ghys    schedule 30.03.2012
comment
Спасибо за ответ. Мне нравится последняя опубликованная вами ссылка. Фрагмент будет частью расширения firefox, поэтому необходимо какое-то диалоговое окно. Но у меня минимальный опыт работы с JQuery, поэтому мне потребовалось бы несколько дней, чтобы изучить многие другие вещи. - person xralf; 30.03.2012
comment
Думаю, создание этого с использованием чистого javascript может занять еще больше времени. Используя jquery, вам просто нужно изучить API, грязные вещи уже обрабатываются библиотекой и плагином. К тому же это довольно просто. - person Didier Ghys; 30.03.2012
comment
Ладно, наверное, ты прав. Я постараюсь соединить его с моим существующим кодом аддона. - person xralf; 30.03.2012
comment
Я сильно придерживался JQuery, нет способа включить его в расширение firefox из эта страница мне подходит. - person xralf; 30.03.2012

Вы действительно не можете использовать какие-либо настраиваемые функции с помощью prompt ().

Лучше создать <input type="text"/> и привязать все это к кнопке, чтобы данные отправлялись всякий раз, когда пользователь нажимает на нее или нажимает клавишу ввода. Затем запрограммируйте его для получения значения автозаполнения всякий раз, когда пользователь вводит новый символ.

Вам следует взглянуть на компонент автозаполнения jQuery UI (это также работает с несколькими строками в качестве входных). Вам также потребуется настроить серверный скрипт, который будет принимать возможно неполную строку в качестве входных данных и выводить возможный список совпадений обратно в браузер.

person Andrei Bârsan    schedule 30.03.2012
comment
Он должен быть универсальным не только для одной страницы, это будет аддон Firefox. - person xralf; 30.03.2012
comment
jQuery также должен работать с управлением XUL, см. stackoverflow.com/questions/693174/ - person Andrei Bârsan; 30.03.2012