<datalist>
Sugestões para um campo que continua aceitando qualquer coisa.
Ligado a um <input> pelo atributo list, transforma o campo num autocompletar sem uma linha de script. Diferente do <select>, não restringe nada: as opções são atalho, não lista fechada.
O preço da autonomia é a aparência. A lista é desenhada pelo navegador e quase não aceita CSS.
<label for="busca">Espécime</label>
<input id="busca" name="q" list="especimes">
<datalist id="especimes">
<option value="details">
<option value="dialog">
<option value="meter">
</datalist>