Javascript vérifier si la valeur entrer dans un champ est bien dans mon tableau.

Résolu
Madonnina78 Messages postés 27 Date d'inscription vendredi 26 novembre 2010 Statut Membre Dernière intervention 9 juin 2012 - 2 mai 2012 à 23:11
Madonnina78 Messages postés 27 Date d'inscription vendredi 26 novembre 2010 Statut Membre Dernière intervention 9 juin 2012 - 3 mai 2012 à 23:26
Bonjour je voudrais arrivé à contrôler si la valeur entrer dans mon champ texte se trouve bien dans mon tableau " t "

donc si j'entre bonjour j'ai une alerte qui dit qu'il se trouve bien dans mon tableau, si j'écris tout autre chose il me dit que le mot ne se trouve pas dans mon tableau

et je n'y arrive pas :(

Si quelqu'un peut m'aider svp?

D'avance merci


<!DOCTYPE html>
<meta charset="utf-8">
<title>exercice 7></title>
<head>
<script type="text/javascript">


var t = new Array("");
t.push("bonjour");
t.push("bonsoir");
t.push("demain");




function mot(param1)
{
var txt = param1.value; /*recupere la valeur*/
toto(); /*appel de la fonction*/
}






function toto()
{


if (txt == t)
{
alert("Votre valeur se trouve bien dans le tableau");
}


else
{
alert("Votre valeur ne se trouve pas dans le tableau");
}
}


</script>
</head>








<script type="text/javascript">

document.write (t);

</script>
</html>

7 réponses

cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
3 mai 2012 à 08:38
Salut,

google aurait pu t'aider plus rapidement que moi. Pour les petites questions simples il faut toujours demander à google Bon, même pour les questions compliquées faut toujours demander à google en premier lieu.

Sinon : l'objet Array possède une fonctione indexOf() qui, pour une entrée recherchée, retourne son index dans le tableau. Si l'élément n'est pas trouvé la fonction retournera -1.
3
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
3 mai 2012 à 20:54
Re,

vu que tu as fait l'effort de pondre un peu de code je vais essayer de t'expliquer plusieurs choses.

Déjà, et même si javascript est permissif, il ne faut pas faire d'erreur sur la portée de tes variables.
Ainsi, ta variable txt ne devrait pas être visible à l'intérieur de la fonction toto().
Il faut donc passer par un paramètre (ou une variable globale, mais c'est moins propre).

Ta fonction devra ressembler à truc du genre :
function toto(sToFind) {
// le contenu de la fonction
}

Ta fonction d'appel doit, elle, ressembler à un truc comac :
function mot(param1) {
var txt = param1.value;
toto(param1.value);
}


Ensuite je rappelle que la fonction indexOf() renvoie l'index (la position dans le tableau) de la chaîne recherchée. Ce chiffre peut varier de 0 (premier élément du tableau) à n-1 (n étant le nombre d'éléments de ton tableau). Si la valeur n'est pas trouvée, la fonction renvoie -1. Tu comprendras donc que comparer ce chiffre à ta valeur recherchée n'a pas de sens. Ta condition doit être : est-ce que je suis égale à -1.

J'espère t'avoir aidé, je ne pourrai pas en dire plus.
3
Madonnina78 Messages postés 27 Date d'inscription vendredi 26 novembre 2010 Statut Membre Dernière intervention 9 juin 2012
3 mai 2012 à 10:06
Bonjour,


Merci mais en code ça donne quoi ?
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
3 mai 2012 à 10:23
Suis le lien que j'ai mis, il y a un exemple.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Madonnina78 Messages postés 27 Date d'inscription vendredi 26 novembre 2010 Statut Membre Dernière intervention 9 juin 2012
3 mai 2012 à 20:20
Désolée je ne comprend pas :(


<!DOCTYPE html>
<meta charset="utf-8">
<title>exercice 7></title>
<head>
<script type="text/javascript">


var t = new Array("");
t.push("bonjour");
t.push("bonsoir");
t.push("demain");




function mot(param1)
{
var txt = param1.value; /*recupere la valeur*/
toto(); /*appel de la fonction*/
}






function toto()
{

var i = t.indexOf("item",4);
if (txt == i)
{
alert("Votre valeur se trouve bien dans le tableau");
}


else
{
alert("Votre valeur ne se trouve pas dans le tableau");
}
}


</script>
</head>








<script type="text/javascript">

document.write (t);

</script>
</html>
0
Madonnina78 Messages postés 27 Date d'inscription vendredi 26 novembre 2010 Statut Membre Dernière intervention 9 juin 2012
3 mai 2012 à 21:23
Merci juste une dernière chose... dois-je faire une boucle pour parcourir le tableau ou c'est pas obligatoire?
0
Madonnina78 Messages postés 27 Date d'inscription vendredi 26 novembre 2010 Statut Membre Dernière intervention 9 juin 2012
3 mai 2012 à 23:26
Un grand merci j'y suis arrivée il faut juste ne pas oublié de revenir dans le champ si on veut testé une deuxième fois car la fonction mot s'active avec onBlur="mot(this)"

Alléluia ;-)

<!DOCTYPE html>
<meta charset="utf-8">
<title>andrea 2</title>
<head>
<script type="text/javascript">
var t = new Array("salut");
t.push("bonjour");
t.push("bonsoir");
t.push("demain");

function mot(param1) {
var txt = param1.value;
/*recupere la valeur*/
toto(txt);
/*appel de la fonction*/
}

function toto(txt) {

var index = t.indexOf(txt);

if(index == -1) {
alert("Votre valeur ne se trouve pas dans le tableau");
} else {
alert("Votre valeur se trouve dans le tableau");
}
}
</script>
</head>




<script type="text/javascript">
document.write(t);

</script>
</html>



Encore merci pour ton aide ...
0
Rejoignez-nous