sto cercando di fare un form che si autocompleti con ajax

Codice PHP:
<input id="***" name="***" size="40" type="text" onkeypress="suggestion_box(this.value)"/> 
il problema è che il this.value invia sempre un carattere in meno rispetto a quelli digitati, mi spiego meglio:
digito A - this.value è vuoto
digito I - this.value è A
digito U - this.value è AI
ecc...
come mai?

inoltre con javascript come si valuta se una variabile è settata o meno?

grazie.