| 
 Подсказка при наборе текста Делаю подсказку при наборе текста: arr - массив с подсказками, например ["мебель"] value - строка с запросом пользователя, например "меб" 
for (var i = 0; < arr.length; i++) // перебираем массив
    if (value == arr[i].substr(0, value.length)) // ищем совпадение
        // выводим подсказку "мебель"
Для запросов и элементов состоящих из одного слова это работает отлично, но есть же ещё и словосочетания. Например, arr = ["мебель офисная"], по запросу "меб" найдёт, но по запросу "офисн" не найдёт. Ок, думаю, надо значит элементы-словосочетания пробелом в новый массив дробить и производить поиск уже в этом новом массиве. arr2 = ["мебель", "офисная"] Так и по "меб" найдёт и по "офисн" тоже. А по запросам "мебель офисная" и "офисная мебель" не найдёт! Значит, думаю, нужно их добавить: arr2 = ["мебель", "офисная", "офисная мебель", "мебель офисная"] Но тогда отдельные то слова мне зачем? В итоге получается что словосочетания нужно дробить на отдельные слова и перебирать их в новом массиве во всех возможных вариантах: arr2 = ["офисная мебель", "мебель офисная"] А если не 2, а 3 слова? 3 слова - 6 комбинаций 4 слова - 24 комбинаций 5 слов - 120 комбинаций 6 слов - 720 комбинаций Помимо громадного количества комбинаций вылезает ещё проблема этой самой подсказки. Например по запросу "моск" будет вылезать подсказка "офисная мебель в москве". Ничего страшного, конечно, но хотелось бы видеть вводимое слово на первом месте, можно его конечно передвинуть в начало строки, но не всегда это выглядит нормально: "москве офисная мебель в", значит нужно переносить с предлогом: "в москве офисная мебель". Далее на горизонте уже маячит проблема того, что вся подсказка будет забита каким то мусором, в котором что то там в конце строки совпало. В общем, тут я понял что изобретаю велосипед и решил спросить совета. | 
| 
 Посмотри здесь: http://jqueryui.com/autocomplete/ | 
| 
 PesBarbos, если вы не поисковик делаите, как яндекс, то достаточно поиска на 1слово -- а следующее слово если есть такая необходимость берите из того текста с которым работаите (или одно из следующих слов)- нет в вашем тексте офисной сковородки и не фиг тогда и хранить такую комбинацию | 
| 
 
<html>
<head>
<meta charset="windows-1251" />
</head>
<body>
<input />
<div>
</div>
<script>
div=document.querySelector("div")
document.querySelector("input").oninput=function(){
 var re=new RegExp(this.value), text=""
 for(var i=0; i<arr.length; i++){if(re.test(arr[i])) text+=arr[i]+"<br>"}
 div.innerHTML=text
}
arr=[
"мебель офисная",
"стол компьютерный",
"стул мягкий"
]
</script>
</body>
</html>
 | 
| 
 
<input type="text" list="suggestions">
<datalist id="suggestions">
    <option>мебель офисная</option>
    <option>стол компьютерный</option>
    <option>стул мягкий</option>
</datalist>
 | 
| 
 Всем привет! Уважаемые, krutoy и danik.js. Все это хорошо. Но... Но проблема в браузерах. Погоняйте свой код (да и любое автодополнение) на Mozila,Opera, Safari и др. Включите планшет и там через UC, Dolphin, Веб-браузер. Ощутите всю "мощь" браузерных возможностей. Сделай продукт кроссбраузерным! P.S.: Цитата: 
 | 
| 
 Цитата: 
 | 
| 
 Уважаемый, krutoy. Все что вы указали кросбраузерно... Но... 1) Я не говорил о вашем скрипте ничего. 2) В разных браузерах разный принцип автодополнения: Пример -Chrome: ищет только по полному соответствию вводимых символов относительно начала строки вхождения. -Mozila: ищет подстроку в строке не зависимо от точки вхождения. 3) Для русского алфавита есть зависимость от регистра вводимых символов. Для английского нет. Я вел речь о поддержке браузерами самого автодополнения как такового. И все дело не в тегах HTML и синтаксиса Jquery или JavaScript, а именно в движке браузера. Эксперементируйте. И увидите сами. А насколько я понял, PesBarbos желал бы реализацию как в Mozila Firefox, и более того, регистронезависимую. Причем на любом из браузеров чтобы работало так, как задумано разработчиком, а не так, как хочет тот или иной браузер. чтобы при вводе: сту мяг СтУ мЯг Результат автодополнения(в любом случае): стул мягкий | 
| 
 Цитата: 
 Цитата: 
 Цитата: 
 | 
| Часовой пояс GMT +3, время: 17:21. |