Liste déroulante avec recherche par clavier

chahy Messages postés 26 Date d'inscription jeudi 28 avril 2005 Statut Membre Dernière intervention 13 juillet 2011 - 23 oct. 2007 à 11:42
chahy Messages postés 26 Date d'inscription jeudi 28 avril 2005 Statut Membre Dernière intervention 13 juillet 2011 - 27 oct. 2007 à 10:11
Bonjour les amies
j'ai un petit probléme que je n'arrive pas a le resoudre , je veux que le resultat trouvez avec cette Liste déroulante avec recherche par clavier  devient a la fin un lien clickble .
par exepmle si je cherche 3200 il va me le trouver et par la suite si je clicke sur le resultat il va m'ouvrire la page qui conserne 3200.
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
<HTML><HEAD>
<TITLE>MMS NOKIA</TITLE>
<SCRIPT LANGUAGE= "JavaScript">



var Liste=new CreerListe("Pays", 5, 200)



Liste.Add("2610");
Liste.Add("2626");
Liste.Add("2650");
Liste.Add("2651");
Liste.Add("2652");
Liste.Add("3100");
Liste.Add("3108");
Liste.Add("3120");
Liste.Add("3200");
Liste.Add("3220");
Liste.Add("3230");
Liste.Add("3250");
Liste.Add("3300");
Liste.Add("3510");
Liste.Add("3510i");



 



function CreerListe(nom, hauteur, largeur) {
 this.nom =nom; this.hauteur= hauteur; this.largeur=largeur;
 this.search="";
 this.nb=0;
 this.Add=AjouterItem;
 this.Afficher=AfficherListe;
 this.MAJ=MAJListe;
}



function AjouterItem(item) {
 this[this.nb]=item
 this.nb++;
}



function AfficherListe() {
 if (document.layers) {
  var Z="<SELECT name="+this.nom+" size="+this.hauteur+">";
 } else {
  var Z="<SELECT name="+this.nom+" size="+this.hauteur+" style='width:"+this.largeur+"'>";
 }
 for (var i=0; i<this.nb; i++) {
  Z+="<OPTION value=""+this[i]+"">"+this[i]+"</OPTION>"  
 }
 Z+="</SELECT>"
 document.write(Z);
}



function MAJListe(txt,f) {
 if (txt!=this.search) {
  this.search=txt
  f.elements[this.nom].options.length=0;
  for (var i=0; i<this.nb; i++) {
   if ( this[i].substring(0,txt.length).toUpperCase()==txt.toUpperCase() ) {
    var o=new Option(this[i], this[i]);
    f.elements[this.nom].options[f.elements[this.nom].options.length]=o;
   }
  }
  if (f.elements[this.nom].options.length==1) {
   f.elements[this.nom].selectedIndex=0;
  }
 }
}



function ListeCheck() {
 Liste.MAJ(document.forms["monform"].search.value,document.forms["monform"])
 if (document.layers) {
  setTimeout("ListeCheck()", 1001)
 } else {
  setTimeout("ListeCheck()", 100)
 }
}



</SCRIPT>
</HEAD>




<CENTER>
Liste déroulante avec recherche par clavier

</CENTER>








Tapez par exemple "3200" dans la zone de texte.

Tapez "al", les pays Albanie, Algérie et Allemagne restent dans la liste.




<FORM name =monform>

<SCRIPT language=javascript>
 Liste.Afficher();
 ListeCheck();
</SCRIPT>
</FORM>



</CENTER>

</HTML>
------------------------------------------------------------------------------------------------------

3 réponses

XtremDuke Messages postés 626 Date d'inscription samedi 28 septembre 2002 Statut Membre Dernière intervention 18 mai 2009 4
23 oct. 2007 à 17:30
J'ai peutetre pas tout saisie mais utilise l'evenement onClick() sur les <option>
0
lesdis Messages postés 403 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 7 août 2020
24 oct. 2007 à 09:33
Bonjour,

Tu peux aussi aller voir du coté des fonction attachEvent() (Pour IE) et addEventListener() (FF).

Bonne prog.
0
chahy Messages postés 26 Date d'inscription jeudi 28 avril 2005 Statut Membre Dernière intervention 13 juillet 2011
27 oct. 2007 à 10:11
oui onclick dans quel endroit
0
Rejoignez-nous