Page 1 sur 1

Recherche accélérée par tableau

Posté : 28 nov. 2018, 02:50
par Pugnare
Bonjour,

Je débute en JS,pour mon apprentissage je me suis pris un livre que j'ai trouvé d'occasion. Le guide complet JAVA SCRIPT 7émé édition.
Mais voila je suis bloqué au chapitre 4 - 4,5 Cas pratique: recherche accélérée par tableau.

j'ai beau regardé et recherche dans le code je ne vois pas ce qui bloque. j'ai retrouvé les fichiers source, mais manque de bol le seul fichier qui manque c'est celui dont j'ai besoin.

Code : Tout sélectionner

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">

<title>Document sans nom</title>

<script type ="text/javascript">

var liste = new creerListe();

liste.Add("Afghanistan");
liste.Add("Afrique du Sud");
liste.Add("Albanie");
liste.Add("Algérie");
liste.Add("Allemagne");
liste.Add("Autriche");
liste.Add("France");
liste.Add("Grèce");
liste.Add("Italie");
liste.Add("Belgique");
liste.Add("Malte");
liste.Add("Luxembourg");
liste.Add("Pays-Bas");
liste.Add("Pologne");
liste.Add("Suède");
liste.Add("Croatie");
liste.Add("Danemark");
liste.Add("Rép. Tchèque");
liste.Add("Hongrie");
liste.Add("Chypre");
liste.Add("Lituanie");
liste.Add("Espagne");
liste.Add("Lettonie");
liste.Add("Portugal");
liste.Add("Slovénie");
liste.Add("Irlande");
liste.Add("Royaume-Uni");

function creerListe(){
	this.search = "";
	this.nb = 0;
	this.Add = ajouterItem;
	this.Afficher = afficherListe;
	this.MAJ = MAJListe;
	this.getNom = getNomListe;
	}

function ajouterItem(item){
	this[this.nb] = item
	this.nb++;
	}                                                                                                                                                                                                                                                                                                                       
function afficherListe(){
	if(document.getElementById){
		document.write("<div id=\"divPays\"style=\"\"></div>");
		}
	}
function getNomListe(indice){
	document.forms["monForm"].search.value = this[indice];
	}
function MAJListe(txt){
	var txtAff="";
	var nb=0;
	if(txt==""){
		document.getElementById("divPays").innerHTML="";
		}
		if((txt!=this.search)&&(txt!="")){
			this.search=txt;
			for(var i=0;i<this.nb; i++){
				if(this[i].substring(0,txt.length).toUpperCase()==txt.toUpperCase()){
					txtAff+= "<a href=\"javascript:liste.getNom("+i+")\">"+this[i]+"</a><br/>";
					}
				}
				document.getElementById("divPays").innerHTML=txtAff;
			}
	}
	
function listeCheck(){
	liste.MAJ(document.forms["monForm"].search.value);
	setTimeout("listeCheck()",100);
	}


	

</script>
</head>

<body>
<form name="monForm">
    pays : 
    <br /><input id="input" type="text" name="search"><br />
           
<script type="javascript">
	liste.Afficher();
	listeCheck();
</script>

</form>	
<br /><p>Liste des pays</p><br/>
</body>
</html>


je pense ne pas avoir fait d'erreur. pourtant il ne fonction pas. merci de votre aide.

Re: Recherche accélérée par tableau

Posté : 28 nov. 2018, 10:51
par webmaster
Bonjour

Très bon choix de livre pour apprendre :)

Le probleme venait simplement de la ligne

Code : Tout sélectionner

<script type="javascript">
	liste.Afficher();
	listeCheck();
</script>
qui ne s'exécutait pas à cause du type de script
il faut écrire type="text/javascript"

Le JS est vraiment frustrant !

Re: Recherche accélérée par tableau

Posté : 29 nov. 2018, 16:08
par Pugnare
Bonjour, Merci de ta réponse. effectivement j'avais bien mal tapé la attribue. :?

encore merci :)