Здесь может помочь элемент HTML5 <datalist>
, но поскольку в настоящее время его поддерживают только несколько браузеров, вам придется полагаться на реализацию JS.
Следующее было наименее ошибочной реализацией, которую я мог найти из простого поиска Google
http://dhtmlx.com/docs/products/dhtmlxCombo/index.shtml. Он поддерживает Ajax, а также клавиши со стрелками вверх / вниз.
StackOverflow также использует собственную реализацию автозаполнения, когда вы начинаете вводить теги, может быть, вы можете получить некоторые идеи, посмотрев на исходный код?