<html><head><title>Test</title></head><body>
<input type="text" id="foo" />
<select id="city">
<option>
Москва
</option>
<option>
Санкт-Петербург
</option>
<option>
Новосибирск
</option>
<option>
Красноярск
</option>
<option>
Самара
</option>
<option>
Нижний Новгород
</option>
<option>
Урюпинск
</option>
<option>
Хабаровск
</option>
<option>
Владивосток
</option>
</select>
<script type="text/javascript">
document.getElementById( 'foo' ).onkeypress = function () {
var sel = document.getElementById( 'city' ).getElementsByTagName( 'option' );
for ( var i = 0; i < sel.length; i++ ) {
if ( this.value.length && sel[i].value.indexOf( this.value ) === 0 ) this.value = sel[i].value;
}
}
</script>
</body></html>
Только это не совсем удобно будет. Например, если мы хотим набрать "Нижний Новгород", то после ввода буквы "Н" в поле запишется "Новосибирск".