нужно что бы когда я начинаю вводить в поле город - в подсказке всплывали не все, а только начинающиеся на введенную букву
если введена А - показываются армавир и абакан
<html>
<head>
<script type="text/javascript" language="javascript">
var autocomplete = ['абакан', 'армавир', 'баку', 'биробиджан', 'вильнюс'];
window.onload = function() {
document.getElementById('input').onkeyup = keyUp;
}
function keyUp(e) {
var e = e||window.event;
switch(e.keyCode) {
case 40:
var selected = -1;
var spans = document.getElementById('autocomplete').getElementsByTagName('span');
for(i=0;i<=spans.length;i++)
if (i in spans && spans[i].className == 'selected') {
spans[i].className = '';
selected = i;
}
selected++;
for(i=0;i<=spans.length;i++)
if (i in spans && i == selected) {
spans[i].className = 'selected';
}
break;
case 38:
var spans = document.getElementById('autocomplete').getElementsByTagName('span');
var selected = spans.length;
for(i=0;i<=spans.length;i++)
if (i in spans && spans[i].className == 'selected') {
spans[i].className = '';
selected = i;
}
selected--;
for(i=0;i<=spans.length;i++)
if (i in spans && i == selected) {
spans[i].className = 'selected';
}
break;
case 13:
var spans = document.getElementById('autocomplete').getElementsByTagName('span');
for(i=0;i<=spans.length;i++)
if (i in spans && spans[i].className == 'selected') {
document.getElementById('input').value = spans[i].innerHTML;
document.getElementById('autocomplete').innerHTML = '';
}
break;
default:
var div = document.getElementById('autocomplete');
div.innerHTML = '';
if (document.getElementById('input').value.length > 0) {
autocomplete.forEach(function(elem, index) {
div.innerHTML += '<span>'+autocomplete[index]+'</span><br />';
});
}
}
}
</script>
<style>
input {
position: absolute;
top: 10px;
left: 150px;
}
#autocomplete {
position: absolute;
top: 40px;
left: 150px;
}
span.selected {
background-color: red;
}
</style>
</head>
<body>
<input type="text" id="input" />
<div id="autocomplete"></div>
</body>
</html>
Привет, да поможет тебе RegEx. Ну или попроще: elem.includes(value). Смотри Fiddle
default:
var div = document.getElementById('autocomplete');
var value = document.getElementById('input').value;
div.innerHTML = '';
if (value.length > 0) {
autocomplete.forEach(function(elem, index) {
var regex = new RegExp("^" + value, "i");
if(elem.match(regex)) div.innerHTML += '<span>'+autocomplete[index]+'</span><br />';
});
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Всем доброго времени сутокПодскажите пожалуйста как решить следующую задачу
Есть таблица постов posts (id, name), есть таблица тэгов tags (id, name)Связаны они между собой с помощью связи "многие ко многим", через вспомогательную...