Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les tutoriels > Non-Officiels > Site Web > Javascript > Apprenez le Javascript ! > Intermédiaire > Les boîtes de dialogue > Lecture du tutoriel

Les boîtes de dialogue

Vous vous apprêtez à lire un tutoriel rédigé par un membre de ce site. Malgré tout le soin que ce membre a pu apporter au tutoriel, nous ne pouvons pas garantir que les informations contenues sur cette page sont exactes à 100%. Merci de garder cela en tête lorsque vous lirez cette page ;o)
Avatar
Auteur : ZoZor
Note : 17 / 20 (5 votes)
Visualisations : 34 245

Plus d'informations Plus d'informations
Dans ce chapitre, vous allez découvrir les boîtes de dialogue. Grâce à elles, nous pourrons commencer à interagir entre le script et l'utilisateur. À la fin de ce chapitre, vous pourrez demander l'âge du visiteur et le stocker dans une variable, et ça, simplement. ^^

Vous pourrez aussi faire quelques autres trucs sympathiques, que vous découvrirez à fur et à mesure de votre avancement dans ce premier chapitre. Alors, prêts ?
Ce chapitre est assez petit, car il y a peu de choses à retenir, mais n'est pas à négliger pour autant. (En gros, retenez bien les fonctions qui vont y être présentées, car on va s'en servir pour plus tard.)
Sommaire du chapitre :
Icône du chapitre
Chapitre précédent Sommaire Chapitre suivant

alert

Vous allez commencer par manipuler la fonction alert, la plus simple des 3. Ah oui, j'avais oublié de vous le dire, mais toutes les boîtes de dialogues sont générées via une fonction.

Cette fonction alert est très très simple, et n'a besoin que d'un paramètre pour pouvoir fonctionner. Une petite chose avant de faire un test de cette fonction : elle sert à informer un visiteur qui visualise la page. Vous allez le comprendre très vite si vous testez ce code.
Code : JavaScript
1
alert('Salut tout le monde !');

Ah, mais c'est ça le petit message qui apparaît en série sur certains sites et qui nous empêche de quitter la page !

Effectivement. Pour ce faire, il y a plusieurs façons. Soit vous voulez afficher différents messages à chaque alerte, et dans ce cas, vous faites appel à la fonction plusieurs fois de suite. Mais vous pouvez aussi faire comme ceci.
Code : JavaScript
1
2
3
4
5
6
var phrases = new Array('Message 1', 'Message 2', 'Message 3', 'Message 4');

for(var i = 0; i in phrases; i++)
{
alert(phrases[i]);
}

Soit vous voulez embêter le visiteur, et dans ce cas, vous faites une boucle qui répètera le même message un certain nombre de fois, comme le fait le script ci-dessous.
Code : JavaScript
1
2
3
4
for(var i = 0; i <= 200; i++)
{
alert('Vous avez cliqué '+i+' fois sur le bouton ok');
}
Je ne vous conseille surtout pas d'essayer ce script !
Si vous le mettez sur votre site, sachez que cela fait fuir les visiteurs (la plupart du temps). Mettez des alertes avec modération. Par exemple, un message qui nous dit 'bienvenue' quand on charge la page du site est très très gênant (si vous fréquentez souvent le site).

Et voilà, vous savez déjà tout de la fonction alert, comme quoi, ce n'était pas trop dur. ^^
Je vous laisse vous amuser avec cette super fonction, qui en ravira plus d'un ! Quand à nous, on se retrouve dans le sous-chapitre suivant.

confirm

Alors : sur qui avez-vous testé la boucle qui tourne 200 fois, et qui ne fait qu'afficher une alerte ? Je ne sais pas vous, mais moi, je n'ai pas pris qu'une victime pour cible (j'ai dû le faire une bonne dizaine de fois avant de me lasser :D ).

Nous allons maintenant nous occuper du cas de confirm. C'est une fonction qui ressemble beaucoup à alert, sauf qu'elle est là pour proposer un choix au visiteur. En général, le message qui précède le choix est une question...

Pour parler plus en détails de cette fonction, je vais vous dire ce que doit contenir son paramètre. Vous devez y placer la question que vous voudrez poser à votre visiteur. Attention, il ne peut répondre que par oui ou non : ne faites pas de question du style : "Quelle est la couleur du cheval blanc d'Henri IV ?". Cela n'a pas de sens de répondre par oui ou par non. Passons aux phrases de test, essayez-moi ceci.
Code : JavaScript
1
confirm('Voulez-vous que je vous repose cette question ?');

Ok, c'est beau tout ça, mais si on clique sur 'Oui / Ok' ou 'Non / Annuler', il ne se passe rien ! Pour ça, pas de problèmes. Si l'utilisateur clique sur 'Non' ou 'Annuler', alors la fonction retourne false. Et s'il clique sur 'Oui' ou 'Ok', elle retourne true. Voici donc ce qu'il faut faire.
Code : JavaScript
1
2
3
4
5
6
7
8
if(confirm('Je vais vous dire sur quel bouton vous allez appuyer')) /* si on clique sur ok */
{
alert('Vous avez cliqué sur ok !'); /* on affiche une alerte */
}
else
{
alert('Vous avez cliqué sur annuler !');/* sinon on en affiche une autre */
}

Bah voilà, je n'ai rien d'autre à ajouter, vous savez désormais vous servir de la boîte de dialogue de type confirm. Elle est très utile si l'on veut ne poser qu'une ou deux questions au visiteur, sans avoir à créer un formulaire.

prompt

Eh oui, vous êtes déjà aux deux tiers de ce chapitre ! Mais il faut bien l'avouer, pour présenter trois fonctions, on n'a pas besoin de plus de dix minutes. Voilà pourquoi ce chapitre n'est pas très consistant, mais je vous rassure, on va se rattraper au chapitre suivant. ;)

Pour ce dernier sous-chapitre, je vais vous présenter la fonction prompt. Comme confirm, elle sert à poser une question au visiteur. Mais cette fois-ci, il va nous répondre avec son clavier, et non sa souris ! Cela équivaut à une zone de saisie dans un formulaire.

La fonction prompt doit avoir un paramètre, mais peut en supporter un deuxième. Comme avec les deux premières fonctions étudiées, le paramètre 1 sert à poser la question ou informer le visiteur. En revanche, le deuxième sert à afficher dans la zone de saisie un message prédéfini. Si vous voulez voir à quoi ça ressemble, essayez ce script.
Code : JavaScript
1
var saisie_du_visiteur = prompt('Quelle est la couleur du cheval blanc d\'Henri IV ?','Mais qu\'est-ce que j\'en ai à faire ?');

Dans cette boîte de dialogue on peut poser presque toutes les questions imaginables aux visiteurs. Je fais pareil avec celle du cheval blanc d'Henri IV. ;)

Après, tout va bien car ce que le visiteur a saisi est stocké dans la variable d'où vous avez appelé la fonction prompt. Sauf si le visiteur a cliqué sur 'Annuler' ! En effet, regardez bien la boîte de dialogue prompt : elle possède un bouton 'Ok' et un autre 'Annuler'.

Image utilisateur
Aperçu de la boîte de dialogue prompt sous Mozilla FireFox

Le seul problème c'est que si on clique sur ce bouton 'Annuler', la variable n'est pas un booléen. En effet, il existe une autre valeur "spéciale", qui n'est ni un chiffre, ni une chaîne de caractères, ni un booléen, et dont je ne vous avais pas parlé. Il s'agit de null (à ne pas confondre avec 'null'). Donc, si vous avez cliqué sur 'Annuler', prompt renvoie null, et non false. Nous pouvez maintenant tester si la personne n'a pas voulu quitter.
Code : JavaScript
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
var mot_de_passe = 'je t\'aime max !';
var reponse = prompt('Saisissez le mot de passe pour accéder à cette page top secrette de la NASA','007');

switch(reponse)
{
case null :
alert('Veuillez réessayer ultérieurement');
break;

case '007' :
alert('Vous ne croyez quand même pas qu\'on va vous servir le mot de passe sur un plateau !');
break;

case mot_de_passe :
alert('Voici les codes secrets pour les lancements de l\'arme nucléaire P305 : 981340D2ZS2 - 8893OIAZ - POE32EKFR7');
break;

default :
alert('Mauvais mot de passe !');
}


Utilisation de isNaN



Et si par hasard on veut que le visiteur n'entre qu'un chiffre ou un nombre, et pas autre chose, comment ferait-on ? On va faire entrer la fonction isNaN dans la place :) . Son nom provient d'une contraction du groupe de mots anglais "is Not a Number", qui signifie "n'est pas un nombre" en français. Si le paramètre n'est pas un nombre, alors la fonction retourne true. Voici un petit script qui vous le prouve ; après, on a fini.
Code : JavaScript
 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
function tester_age(age_entre)
{
var test;
  if(isNaN(age_entre)) /* Si age_entre n'est pas un nombre */
  {
  alert('Vous n\'avez pas entré un nombre !');
  test = false;
  }
  else
  {
    if(age_entre == null || age_entre == '') /* Si on a cliqué sur Annuler ou si on n'a rien entré */
        {
        alert('Vous n\'avez pas entré un nombre !');
        test = false;
        }
        else
        {
        test = true;
        }
  }
  
  if(!test) /* Et on fait le test final grâce à la variable test */
  {
  age = prompt('Quel est votre âge ?');
  tester_age(age);
  }
  else
  {
  alert('Ah, tu as donc '+age_entre+' ans !');
  }
}

var age = prompt('Quel est votre âge ?');
tester_age(age);

Grâce à la répétition de la fonction si on a entré quelque chose de différent d'un nombre, on redemande l'âge du visiteur jusqu'à ce qu'il entre un nombre. Pas besoin de boucle ou quoi que ce soit d'autre pour le redemander.

Q.C.M.

Que retourne la fonction prompt si le visiteur a cliqué sur 'Annuler' ?
À quoi sert la fonction isNaN ?
Qu'affiche ce script si on entre 45 ?

Code : JavaScript
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
var ma_variable = prompt('Quel est ton âge ?');

if(ma_variable == null)
{
ma_variable = false;
}
else
{
ma_variable = true;
}

if(!ma_variable)
{
alert('Youhou');
}
else
{
alert('Yahou');
}

Statistiques de réponses au QCM


Ainsi s'achève le petit chapitre sur les boîtes de dialogues, qui ma foi, sont très pratiques et très utilisées !

En plus de cela, nous avons appris une fonction elle aussi très utile, isNaN. Avant que nous nous quittions, j'aimerais vous faire tester une chose. Javascript va vous répondre une chose que vous devriez comprendre si vous avez un minimum de logique ^^ . Voici le script à tester.
Code : JavaScript
1
2
var variable = 'texte' * 5;
alert(variable);

Il nous répond NaN, qui signifie "Not a Number", ce qui, en français, veut dire "pas un nombre". La variable variable contient en fait une erreur. Ne me demandez pas pourquoi : ça n'a aucun sens de multiplier du texte par 5 ! Enfin, c'était juste pour vous montrer ceci.
Chapitre précédent Sommaire Chapitre suivant
Retour en haut Retour en haut


Créé : le 28/06/2006 à 21:30:15
Modifié : le 22/08/2008 à 15:52:25
Avancement : 100%
Licence : Copie non autorisée

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 273 Zéros connectés | Requêtes SQL 8 requêtes | Temps de génération de la page : Total (SQL) 0.1517s (0.1363s)