Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.08.2012, 16:07
Кандидат Javascript-наук
Отправить личное сообщение для Bebarr Swallow Посмотреть профиль Найти все сообщения от Bebarr Swallow
 
Регистрация: 17.03.2011
Сообщений: 113

Автодополнение
Имеем массив текстовых значений:
var db = [
  "drawLine",
  "drawCircle",
  "fill",
  ...
];


Есть тестовое поле, к которому нужно прикрутить функцию "автодополнения". Т.е. начинаем писать - "dra", а она должна показать возможные варианты (как в поиске Google и т.п.).
Ответить с цитированием
  #2 (permalink)  
Старый 28.08.2012, 16:20
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

Bebarr Swallow, попробуйте jQuery AutoComplete
Ответить с цитированием
  #3 (permalink)  
Старый 28.08.2012, 17:44
Кандидат Javascript-наук
Отправить личное сообщение для Bebarr Swallow Посмотреть профиль Найти все сообщения от Bebarr Swallow
 
Регистрация: 17.03.2011
Сообщений: 113

Да ну этот jQuerry. Мне что-то попроще.

Пока такое сделал:
<input type="text" id="autocomplete" />
<div id="autocomplete_result"></div>​

<script>
var db = [
  "drawLine",
  "drawCircle",
  "fill"
];

autocomplete.addEventListener("keyup", function() {
  if(!autocomplete.value) {
    autocomplete_result.innerHTML = "";
    return;
  }
  var a = new RegExp("^" + autocomplete.value, "i");
  for(var x = 0, b = []; x < db.length; x++) {
    if(a.test(db[x])) b.push(db[x]);
  }
  autocomplete_result.innerHTML = b.join("<br>");
});
​</script>
Ответить с цитированием
  #4 (permalink)  
Старый 28.08.2012, 19:18
Кандидат Javascript-наук
Отправить личное сообщение для Bebarr Swallow Посмотреть профиль Найти все сообщения от Bebarr Swallow
 
Регистрация: 17.03.2011
Сообщений: 113

Вот так получилось довольно не дурно - http://jsfiddle.net/Yz2FZ/embedded/result/
Ответить с цитированием
  #5 (permalink)  
Старый 28.08.2012, 19:33
Кандидат Javascript-наук
Отправить личное сообщение для Bebarr Swallow Посмотреть профиль Найти все сообщения от Bebarr Swallow
 
Регистрация: 17.03.2011
Сообщений: 113

Решил сохранить в файл а получаю только это:
Uncaught SyntaxError: Unexpected token ILLEGAL AutoComplete.html:89
Главное что на сайте работает! А в файле не хочет.

Вот ссылка на файл - http://rghost.ru/private/40057345/5c...ae4f463420f103. Буду благодарен, если кто скажет в чем проблема.
Ответить с цитированием
  #6 (permalink)  
Старый 28.08.2012, 19:41
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

Bebarr Swallow, все работает, только для IE нужно использовать attachEvent
http://javascript.ru/tutorial/events/intro
Ответить с цитированием
  #7 (permalink)  
Старый 28.08.2012, 19:48
Кандидат Javascript-наук
Отправить личное сообщение для Bebarr Swallow Посмотреть профиль Найти все сообщения от Bebarr Swallow
 
Регистрация: 17.03.2011
Сообщений: 113

Сообщение от lord2kim Посмотреть сообщение
Bebarr Swallow, все работает, только для IE нужно использовать attachEvent
http://javascript.ru/tutorial/events/intro
Я в курсе про attachEvent. Уверяю, у меня последняя стабильная версия браузера Google Chrome, и у меня при загрузке страницы в консоли возникает ошибка. "Автодополнение", конечно же, там тоже не работает.

UPD: удалил и написал заново последнюю строку - все заработало

Последний раз редактировалось Bebarr Swallow, 28.08.2012 в 20:29.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автодополнение в input, типа autocomplete, но не совсем это. zero_mod jQuery 1 19.11.2010 13:04
Своя подсветка и автодополнение в редакторе Riim Оффтопик 13 21.06.2010 15:14