Partage
  • Partager sur Facebook
  • Partager sur Twitter

vérifier l'age d'une personne avec un script

Sujet résolu
20 août 2010 à 13:57:54

Bonjour,

Je débute avec JavaScript, je fais donc des petits tests pour me familiariser avec ce langage et mieux le comprendre...

J'aimerai en faite, quand une personne clique sur un lien, une boite de dialogue s'affiche et demande l'age du visiteur.

- S'il est supérieur ou égal à 18 ans, j'ouvre une page

- si c'est inférieur à 18 ans, j'ouvre une autre page.

- Je veux également vérifier que le visiteur tape bien un chiffre et non une lettre ou autre et qu'il ne tape pas zéro(0) ou sinon un message s'affiche et lui demande de vérifier ce qu'il a tapé.

- Je veux également que si le visiteur clique sur "annuler", on revient à la page càd on enlève la boite de dialogue.

Pour l'instant j'ai réussi à tout faire sauf : vérifier qu'il a bien taper un nombre et pas zéro(0) ==> j'utilise isNaN() mais là je n'arrive pas à savoir où/comment l'utiliser...

Et pour quand il clique annuler, je ne vois pas bien comment faire...

Voici mon code:

<script type="text/javascript">
<!--

function age()
{
	var a = prompt("quel age avez-vous?");
	
	if(a>=18) 
	{
		window.open ("http://www.yahoo.fr");
	}
	else
	{
		window.open ("http://www.google.fr");
	}
	
		
}

//<!--
</script>


<p style="padding:15px;">Pour savoir quel site est fait pour vous, <a href="#" onclick="age()">cliquez ici</a> et vous le découvrirez...</p>


J'ai essayé de mettre IsNaN() à différents endroits mais sans succès...

J'aimerai tout d'abord des pistes pour travailler et non la réponse... Mais si je vois que même avec les pistes je n'y arrive pas, j'aimerai la réponse avec des explications pour comprendre...

Merci!

Bonne journée!
  • Partager sur Facebook
  • Partager sur Twitter
20 août 2010 à 14:27:29

var a = prompt("quel age avez-vous?");
if(!a)//pour tester si il a cliquer sur annuler ou non
//annuler
else
//pas annuler


et pour isNaN(a), c'est une fonction qui indique si la variable a est un nombre ou non...
  • Partager sur Facebook
  • Partager sur Twitter
20 août 2010 à 14:39:29

Tu pourrais utiliser une boucle avec while, pour obliger l'utilisateur de remplir la condition qui t'interesse avant de passer à la suite de ton code

J´aurais bien fait un truc comme cela:
do{
  var a = prompt("quel age avez-vous?");
}
while(!(a>0 && a<120))//âge limite...


  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
20 août 2010 à 15:00:23

il manque un parseInt(a, 10); dans l'histoire quand même…
  • Partager sur Facebook
  • Partager sur Twitter
21 août 2010 à 19:22:08

Bonjour,

Merci pour votre aide, j'ai réussi à faire ce que je voulais...

Mais maintenant j'ai autre chose qui me turlupine: quand je demande l'âge et que la personne écrit une lettre, j'ai bien mon message qui s'affiche, ensuite je voudrai que la boite de dialogue avec ma question se ré-affiche (ça je l'ai fais).

Mais il ne se passe rien quand j'écris un âge ou même une lettre alors que je voudrai qu'elle tienne compte de mes conditions... Et je voudrai également que si je retape une lettre, le message d'erreur s'affiche (une boucle non? comment faire avec mon code?).

Je ne vois pas du tout comment faire avec le code que j'ai tapé :( Si quelqu'un peut me guider...

function age()
{
	var a = prompt("quel age avez-vous?");
	
	       if(!a)
		   {
			   document.url("menu2.html");
		   }
		   
		   else if(isNaN (a))
		   {
			   alert("Ce n'est pas un nombre");
			   prompt("quel age avez-vous?");
			  				   
		   }
		   
		   else if(a==0)
		   {
			   alert("Tu as 0 an? Vraiment?");
			   prompt("quel age avez-vous?");
		   }
	
           else if(a>=18)
		   {
			   window.open ("http://www.yahoo.fr");
		   }
		 else
		   {
			   window.open ("http://www.google.fr");
		   }
		
}


Mille Merci!

Bonne journée!
  • Partager sur Facebook
  • Partager sur Twitter
21 août 2010 à 22:33:48

tout simplement:

function age()
{
	var a = prompt("quel age avez-vous?");
	
	       if(!a)
		   {
			   document.url("menu2.html");//action a faire si l'utilisateur ne rentre rien
		   }
		   
		   else if(isNaN (a))
		   {
			   alert("Ce n'est pas un nombre");
			   age();
			  				   
		   }
		   
		   else if(a==0)
		   {
			   alert("Tu as 0 an? Vraiment?");
			   age();
		   }
	
           else if(a>=18)
		   {
			   window.open ("http://www.yahoo.fr");
		   }
		 else
		   {
			   window.open ("http://www.google.fr");
		   }
		
}

  • Partager sur Facebook
  • Partager sur Twitter
22 août 2010 à 0:10:16

Ah bah oui c'est logique...

Mille Merci!

Bonne journée
  • Partager sur Facebook
  • Partager sur Twitter