Ce lien peut t'aider :
http://jqueryui.com/autocomplete/ puis "Default functionality" et enfin "View source". La solution proposé est full JS (pas de code côté serveur genre php).
A noter que dans ton cas tu peux définir le champ minLength : 3 comme ci-dessous
$( "#tags" ).autocomplete({
source: availableTags,
minLength:3
});
Pour ce qui est d'une source distante tu peux faire de la manière suivante :
$("#tags").autocomplete({
source: 'datasource.php',
minLength: 2,
});
Le fichier datasource.php peut se connecter à une bdd, y faire une requête du type "SELECT * FROM table WHERE champ LIKE "'%$debut'" " puis doit renvoyer du JSON avec le format suivant :
$tags] = array("id" => "id_du_tag", "label" => "label_du_tag", "value" => "value_du_tag");
Bien sur dans le cas d'une textbox seul la value est essentiel au final.