1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>sélection auto: le retour</title>
<style type="text/css">
ul {border:1px solid;display:none;background-color:white;padding:0px;margin:0px;width:152px;list-style:none}
li {width:150px}
</style>
<script type="text/javascript">
var tab=new Array(// tableau de valeurs à rechercher
'un',
'deux',
'trois',
'quatre',
'cinq',
'six',
'sept',
'huit',
'neuf',
'dix',
'onze',
'douze',
'treize',
'quatorze',
'quinze',
'seize',
'dix-sept',
'dix-huit',
'dix-neuf',
'vingt'
);
function go(alpha){
var aff=document.getElementById('liste');
var affiche=aff.getElementsByTagName('li');
// à chaque caractère tapé, on vide la liste de résultats précédente
while(aff.lastChild)aff.removeChild(aff.lastChild);
// on supprime les accents pour comparaison
for(i=0;i != tab.length;i++){
tab2=tab[i].replace(/[àâä]/gi,'a');
tab2=tab2.replace(/[éèêë]/gi,'e');
tab2=tab2.replace(/[ïî]/gi,'i');
tab2=tab2.replace(/[ôö]/gi,'o');
tab2=tab2.replace(/[ùüû]/gi,'u');
alpha=alpha.replace(/[àâä]/gi,'a');
alpha=alpha.replace(/[éèêë]/gi,'e');
alpha=alpha.replace(/[ïî]/gi,'i');
alpha=alpha.replace(/[ôö]/gi,'o');
alpha=alpha.replace(/[ùüû]/gi,'u');
// on supprime les majuscules et on cherche une correspondance
if(tab2.toLowerCase().indexOf(alpha.toLowerCase())==0){
if(alpha){
// pour chaque correspondance, on crée un nouvel item dans la liste
var el=document.createElement("li");
var tx=document.createTextNode(tab[i]);
// en cliquant sur l'item, on transmet sa valeur et on "efface" la liste
el.onclick=function(){document.getElementById('t').value=this.firstChild.data;aff.style.display='none'};
el.appendChild(tx);aff.appendChild(el)}}
};
var total=affiche.length;// nombre de résultats trouvés
if((total==0) || (total>=4)){// Si résultats = 0 ou > 3
// création d'un item vide (conformité xhtml: pas de liste vide)
var el=document.createElement("li");
var tx=document.createTextNode(" ");
el.appendChild(tx);
aff.style.display='none';// liste invisible
aff.appendChild(el);}
else aff.style.display='block';// sinon, on affiche les correspondances
}
</script>
</head>
<body>
<div style="margin:50px">(Recherche des nombres de 1 à 20, écrits en toutes lettres.)</div>
<form id="f" action="">
<div>
<input type="text" style="width:150px" id="t" onkeyup="go(this.value)" />
<label for="t">Saisissez votre requête</label>
<ul id="liste"style="display:none">
<li> </li>
</ul>
</div>
</form>
</body>
</html> |
Partager