Académique Documents
Professionnel Documents
Culture Documents
1 Le langage Javascript
1.1 Ecriture de code Javascript . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.1 Format gnral dun programme . . . . . . . . . . . . . . . . .
1.1.2 Intgration dans une page HTML . . . . . . . . . . . . . . . .
1.1.2.1 Intgration pour excution directe . . . . . . . . . . .
1.1.2.2 Excution diffre . . . . . . . . . . . . . . . . . . . .
1.1.2.3 Insertion de code JavaScript lintrieur dune balise
1.1.3 Les premiers programmes Javascript . . . . . . . . . . . . . . .
1.1.3.1 Insertion de code Javascript excution directe . . .
1.1.3.2 Insertion de code javascript excution diffre . . .
1.1.3.3 Insertion du code Javascript lintrieur dune balise
1.1.4 Insertion de code par appel de module externe . . . . . . . . .
1.1.4.1 Rdaction du module externe . . . . . . . . . . . . .
1.1.4.2 Appel du module externe . . . . . . . . . . . . . . . .
1.2 Structure du langage . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.1 Blocs et instructions . . . . . . . . . . . . . . . . . . . . . . . .
1.2.2 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.2.1 Dclaration et affectation de variables . . . . . . . .
1.2.2.2 Type de variables . . . . . . . . . . . . . . . . . . . .
1.2.2.3 Porte dune variable . . . . . . . . . . . . . . . . . .
1.2.3 Oprateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.3.1 Oprateurs arithmtiques . . . . . . . . . . . . . . . .
1.2.3.2 Oprateurs de comparaison . . . . . . . . . . . . . .
1.2.3.3 Oprateurs logique . . . . . . . . . . . . . . . . . . .
1.2.4 Structures conditionnelles . . . . . . . . . . . . . . . . . . . . .
1.2.5 Structures rptitives . . . . . . . . . . . . . . . . . . . . . . . .
1.2.5.1 Instruction for . . . . . . . . . . . . . . . . . . . . . .
1.2.5.2 Instruction While . . . . . . . . . . . . . . . . . . . .
1.2.6 Fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.6.1 Dclaration dune fonction . . . . . . . . . . . . . . .
1.2.6.2 Appel dune fonction . . . . . . . . . . . . . . . . . .
1.2.6.3 Exemple de fonction . . . . . . . . . . . . . . . . . . .
1.2.7 Tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
HTML
. . . . .
. . . . .
. . . . .
HTML
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
1
1
2
2
2
3
3
3
4
4
5
5
5
5
5
6
6
6
6
6
6
7
7
7
7
8
8
8
8
8
9
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
11
11
11
11
12
12
13
14
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
15
15
15
15
15
15
16
17
17
17
17
Chapter 1
Le langage Javascript
Ce langage, initialement cr par la socit Netscape, permet de rendre une page HTML bien plus interactive, en y insrant du code ragissant, par exemple, aux vnements de lutilisateur, ou encore
valider les donnes saisies dans un formulaire HTML. Dans ce premier chapitre, nous allons nous intresser la syntaxe du langage, mais aussi son organisation, en relation avec ce que vous avez vu en
cours dalgorithmique. Nous verrons ensuite les diffrents objets du navigateurs, et les manires de les
programmer.
1.1
Attention, le langage est dit "case sensitive", cest dire que le langage est sensible aux majuscules et
minuscules.
1.1. ECRITURE
CHAPTERDE
1. CODE
LE LANGAGE
JAVASCRIPT
JAVASCRIPT
CHAPTER
1.1.1. ECRITURE
LE LANGAGE
DE CODE
JAVASCRIPT
JAVASCRIPT
1.1. ECRITURE
CHAPTERDE
1. CODE
LE LANGAGE
JAVASCRIPT
JAVASCRIPT
CHAPTER
1.1.1. ECRITURE
LE LANGAGE
DE CODE
JAVASCRIPT
JAVASCRIPT
</body>
</html>
Nous voyons ici une seconde instructions Javascript, linstruction alert, qui permet douvrir une
boite de dialogue sur un navigateur. Nous aurons loccasion de revenir sur cette instructions.
A retenir : quand le code Javascript est plac juste aprs la balise <body>, il est excut avant laffichage de la
page.
1.1.3.2 Insertion de code javascript excution diffre
Selon le mme principe que dans lexercice prcdent, crire et affich la page suivante, enregistre sous
le nom Exercice 1.3.2.
<html>
<head>
<title>Exercice javascript 1.3.2</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<script language = "javascript">
function affiche()
{
alert("Le message dalerte saffiche suite un vnement.\nCliquez sur OK pour poursuivre");
}
</script>
<h1>Exercice 1.3.2 : Code javascript a exécution différée</ h1>
1.1. ECRITURE
CHAPTERDE
1. CODE
LE LANGAGE
JAVASCRIPT
JAVASCRIPT
CHAPTER
1.1.1. ECRITURE
LE LANGAGE
DE CODE
JAVASCRIPT
JAVASCRIPT
1.1. ECRITURE
CHAPTERDE
1. CODE
LE LANGAGE
JAVASCRIPT
JAVASCRIPT
CHAPTER
1.1.1. ECRITURE
LE LANGAGE
DE CODE
JAVASCRIPT
JAVASCRIPT
le bouton ci-dessous.
<form>
<center>
<input type = "button" name="evenement" value = "Cliquez ici pour gnrer un
vnement" onclick= "javascript:affiche()"
</center>
</form>
</body>
</html>
Le code contient cette fois ci une fonction Javascript. Nous reviendrons sur ce principe de programmation, mais nous pouvons dj remarquer que les instructions contenues dans cette fonction
(linstruction alert en locurence) sont excut lors de lappel affiche(). Cet appel de la fonction
est ralis quand lvnement onclick apparait sur le bouton du formulaire.
A retenir : pour une excution de code Javascript diffre, il est ncessaire denglober le bloc dinstruction dans
une fonction, qui est appele depuis le code HTML.
1.1.3.3 Insertion du code Javascript lintrieur dune balise HTML
Toujours sur le mme principe, crire la page HTML exercice1-3-3.html contenant le code suivant
:
<html>
<head>
<title>Exercice javascript 1.3.3</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language = "javascript">
</script>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<h1>Exercice 1.3.3 : Code javascript inséré dans une balise HTML</ h1>
<p>Le script Javascript est exécuté suite à larrivée
dun évènement dans la page, ici quand lutilisateur clique sur
le bouton ci-dessous.
<form>
<center>
<input type = "button" name="evenement" value = "Cliquez ici pour gnrer un vnement" onclick= "
javascript:alert(Ce est affich suite un vnement.\nCliquez sur OK pour poursuivre);"
</center>
</form>
</body>
</html>
Cette fois-ci, linstruction alert() est directement insre dans le code HTML, au niveau de lattribut
onclick de la balise button. Il est bien sr possible de cumuler plusieurs instructions Javascript la
suite, en les sparant par des points - virgules. Les balises (au contenu vide) <script></script> places
en entte de la page permettent de prciser au nvigateur quil aura du code interprter.
A retenir : dans le cas dune insertion de code lintrieur dune balise HTML, on place les instructions
prcdes du mot-clef javascript: directement dans la balise, spares de points-virgules. Il est ncessaire de
prciser au navigateur quil y aura du code interprter dans la page, en plaant en entte de document les balises
<script language = javascript></script>.
1.1. ECRITURE
CHAPTERDE
1. CODE
LE LANGAGE
JAVASCRIPT
JAVASCRIPT
CHAPTER
1.1.1. ECRITURE
LE LANGAGE
DE CODE
JAVASCRIPT
JAVASCRIPT
Cependant, cette mthode trouve ses limites dans la rutilisation et la maintenance des fonctions. En
effet, si vous utilisez souvent une mme srie dintructions Javascript dans plusieurs pages HTML, et
1.2. STRUCTURE
CHAPTER 1.DULELANGAGE
LANGAGE JAVASCRIPT
CHAPTER 1. LE
1.2.LANGAGE
STRUCTURE
JAVASCRIPT
DU LANGAGE
que vous souhaitez les modifier, vous devrez reprendre une par une lensemble des pages ... ce qui peut
rapidement devenir fastidieux.
Une solution ces problmes est de placer des fonctions Javascript dans un module externe. Ce
fichier contiendra le code source, et linsertion dans la page HTML deviendra :
<script src = "URL du module externe">
..
..
</script>
Ces balises indiquent au navigateur non plus la nature du code quil doit utiliser, mais lemplacement
auquel il trouvera ce code. Ainsi, en modifiant le contenu du module externe, on modifiera le comportement de lensemble des pages qui sy rfrent.
1.1.4.1 Rdaction du module externe
Le module externe doit tre crit au format texte simple, et portant lextension .txt. Il doit tre plac
son adresse dappel. Il contient le code source Javascript, gnralement crit sous forme de fonctions.
Travail faire : crer un module externe nomm mod_jvs1.txt, et le placer dans le rpertoire
/javascript/exercices/modules/. Y insrer le code de deux fonctions, similaires la fonction
affiche() vue dans les exercices prcdents :
affiche1() : ouvre une boite de dialogue affichant "Execution de la fonction 1"
affiche2() : ouvre une boite de dialogue affichant "Execution de la fonction 2"
1.1.4.2 Appel du module externe
Nous disposons donc dsormais des fonctions affiche1() et affiche2(), dont les code sont dcrits dans le
module externes. Nous souhaitons utiliser ces fonctions dans une page HTML.
Travail faire : selon le modle vu dans le paragraphe 1.3.2, crire la page HTML exercice-1.4.
2.html, contenant deux boutons, excutant chacun une des deux fonctions affiche() contenues dans le
module externe mod_jvs1.txt.
Note : afin dindiquer au navigateur o se trouve le module externe, il est ncessaire dinsrer en
entte du document la balise suivante, au contenu vide.
<script src = "URL du module externe">
</script>
"URL du module externe" contiendra le chemin relatif du module externe par rapport la page
HTML, savoir ici : /modules/mod_jvs1.txt. Par cette commande, le navigateur chargera en mmoire le contenu du module externe, et pourra excuter les fonctions qui y sont contenues.
1.2
Structure du langage
Nous avons vu dans les paragraphes prcdents quelques aperus du langage Javascript, comme les
fonctions, les instructions ou les blocs. Dans cette partie du cours, nous allons nous intresser plus
prcisment la syntaxe gnrale du langage, et quelques unes de ses instructions et fonctions clefs.
1.2.2 Variables
1.2. STRUCTURE
CHAPTER 1.DULELANGAGE
LANGAGE JAVASCRIPT
CHAPTER 1. LE
1.2.LANGAGE
STRUCTURE
JAVASCRIPT
DU LANGAGE
1.2. STRUCTURE
CHAPTER 1.DULELANGAGE
LANGAGE JAVASCRIPT
CHAPTER 1. LE
1.2.LANGAGE
STRUCTURE
JAVASCRIPT
DU LANGAGE
Concernant les noms de variables, il ny a pas de limitations particulire, si ce nest de ne pas utiliser
un des mots rservs du langage. Il est galement noter que le langage tant case sensitive, les majuscules et minuscules ont leur importance.
Une fois la variable dclare, il est alors possible de lui affecter une valeur, grce loprateur
daffectation :
mon_nom_de_variable = ma_valeur
Une autre solution pour typer les variables directement lors de leur dclaration est de leur affecter
directement une valeur :
var mon_age = 30, mon_prenom = "ivan", feminin = false;
Linstruction prcdente nous permet de passer en revue les trois types de variables principaux :
numrique (Number), chaine de caractre (String) et booleen (Boolean) :
Number : accepte tout nombre (y compris virgule)
String : accepte toute chaine de caractre, sans limitation de longeur
Booelan : prend les valeur True (vrai) ou false (faux)
1.2.2.3 Porte dune variable
Une fois la variable dclare, elle est directement utilisable dans le bloc dinstructions qui la contient,
et dans tous ceux qui lui sont infrieurs. Ainsi, une variable dclare juste aprs la balise <script> sera
utilisable dans tout le programme, y compris dans les fonctions qui le compose. Par contre, une variable
dclare dans une fonction ne sera pas accessible depuis une autre fonction. Nous reviendrons sur cet
aspect important de la porte des variables dans le paragraphe consacr aux fonctions.
1.2.3 Oprateurs
1.2.3.1 Oprateurs arithmtiques
Les oprateurs arithmtiques sappliquent sur une ou deux oprandes de types Number.
Les oprateur dincrmentation et de dcrmentation correspondant aux instructions suivantes :
i++ quivaut i=i+1
i-- quivaut i= i-1
1.2. STRUCTURE
CHAPTER 1.DULELANGAGE
LANGAGE JAVASCRIPT
CHAPTER 1. LE
1.2.LANGAGE
STRUCTURE
JAVASCRIPT
DU LANGAGE
1
0
10
1.2. STRUCTURE
CHAPTER 1.DULELANGAGE
LANGAGE JAVASCRIPT
CHAPTER 1. LE
1.2.LANGAGE
STRUCTURE
JAVASCRIPT
DU LANGAGE
Signe
+
*
/
%
++
--
==
!=
<;>
<= ; >=
La "condition" doit tre une expression boolenne valuable. Si elle est VRAI, alors la premire srie
dinstructions est excute, si elle est FAUSSE, alors cest la seconde srie qui est excute.
&&
||
1
1
11
1.2. STRUCTURE
CHAPTER 1.DULELANGAGE
LANGAGE JAVASCRIPT
CHAPTER 1. LE
1.2.LANGAGE
STRUCTURE
JAVASCRIPT
DU LANGAGE
NON
1
2
12
1.2. STRUCTURE
CHAPTER 1.DULELANGAGE
LANGAGE JAVASCRIPT
CHAPTER 1. LE
1.2.LANGAGE
STRUCTURE
JAVASCRIPT
DU LANGAGE
La boucle For utilise donc un compteur, initialis une certaine valeur, valeur modifie chaque
excution du bloc dinstructions, jusquau changement de valeur de la condition. Le compteur tant
une variable, il ne faut bien sr pas omettre de la dclarer.
Example 1.2 Hello World "puissance 10"
var i;
for (i=1;i<=10;i++)
{
printf("Hello world "+i+" <br>");
}
Cet exemple va donc crire 10 fois les mots "hello world", suivi des chiffres 1,2,3 .. jusqu 10. Au
premier passage dans la boucle, i se voit affect la valeur 1. A chaque passage dans la boucle, le programme crit la phrase, et incrmente i de 1. Quand i prend la valeur 11, la conditionnelle est fausse, et
le programme saute directement linstruction suivante.
1.2.6 Fonctions
1.2.6.1 Dclaration dune fonction
Nous avons tudi les fonctions en algorithmique, et aperu quelques exemples dans les paragraphes
prcdents de leur application en Javascript.
Une fonction en Javascript doit tre dclare selon le modle suivant :
function nom_fonction (para1, para1, ...)
{
Instruction;
Instruction;
...
return resultat;
}
Function est un mot rserv du langage Javascript. Para1, para2, ... contiennent des paramtres qui
vont pouvoir tre utiliss dans la fonction. Enfin, le mot rserv return permet de renvoyer une valeur
linstruction appelante. Quand ce mot nest pas prsent dans le corps de la fonction, la fonction se
comporte alors comme une procdure.
1.2.6.2 Appel dune fonction
Un appel une fonction est donc un ordre donn au navigateur pour excuter des lignes de codes
places hors du bloc de code appelant. Lappel se fait de deux manires :
soit directement en donnant le nom de la fonction et les arguments quelle accepte quand la fonction ne retourne pas de valeurs
soit en affectant le rsultat de la fonction une variable.
1.2.6.3 Exemple de fonction
1
3
13
1.2. STRUCTURE
CHAPTER 1.DULELANGAGE
LANGAGE JAVASCRIPT
CHAPTER 1. LE
1.2.LANGAGE
STRUCTURE
JAVASCRIPT
DU LANGAGE
1
4
14
1.2. STRUCTURE
CHAPTER 1.DULELANGAGE
LANGAGE JAVASCRIPT
CHAPTER 1. LE
1.2.LANGAGE
STRUCTURE
JAVASCRIPT
DU LANGAGE
function titre(police,couleur,taille,texte){
document.write("<font color=\"" + couleur + "\" size=\"" + taille + "\" face =\"" + police + "\">" + texte + "</font>");
}
titre("Comic Sans MS","red",4,"Je mclate faire des titres en JavaScript !");
document.write("<br>");
titre("Impact,Verdana,sans-ms","#FF8040",5,"Bien sr, JavaScript ne sert pas qu faire des titres !");
document.write("<br>");
titre("Arial","black",7,"Mais cela vous montre les fonctions et les arguments !") ;
1.2.7 Tableaux
Les tableaux permettent de stocker plusieurs valeurs dans une seule variable. La dclaration dune
variable de type tableau se fait en utilisant linstruction suivante :
var mon_tableau = new Array();
1
5
15
Chapter 2
Nous avons vu dans les paragraphes prcdents la syntaxe du langage Javascript, et quelques unes de
ses principales fonctions et instructions. Nous allons maintenant aborder la mthode de programmation
du navigateur lui-mme. Nous allons en particulier nous intresser la notion dobjets et dvnements.
11
11
De la figure prcdente, on peut par exemple dduire quun formulaire (form) peut contenir un objet
Text, un objet Button, etc..
2.1.1.2 Les classes de bases de lobjet navigateur
Les objets sont automatiquement instancis chaque tape du fonctionnement du navigateur, par exemple lors de louverture dune fentre ou de frames, la cration des documents contenus dans chaque
fentre ou frame, et les divers lments (formulaires, images, liens ...) contenus dans chaque lment.
Les applications JavaScript peuvent alors dialoguer avec ces objets visuels et les manipuler. Le programmeur peut ainsi agir sur ltat du navigateur, de ses fentres et des documents et des composants qui y
sont inclus.
Quelques uns des objets souvent manipuls :
navigator : cest le logiciel client dont le nom est not dans navigator.appName
window : lobjet de plus haut niveau cr par le navigateur, cest sa fentre.
location : cest lobjet URL de la fentre courante.
history : ce sont les URL prcdemment visites.
document : il sagit du document courant, dont les proprits sontle titre, les couleurs (fond, texte,
lien ...), les formulaires, les images etc..
Pour accder un objet de la page HTML, nous pouvons utiliser lattribut name ou mieux encore,
lattribut id que nous aurons bien videmment appliqus lensemble de nos balises HTML.
Ainsi, laccs un champ du formulaire se fera par lappel suivant :
window.document.nom_du_fomulaire.nom_du_champ
Nous voyons dans linstruction prcdente quil est cependant ncessaire de bien spcifier le "chemin"
du formulaire : le formulaire faait bien partie de la fentre (window), qui contient un document HTML
(document), qui lui mme contient un formulaire, etc ...
Tous les attributs de toutes les balises sont ainsi manipulables avec le Javascript !
De la mme manire, il est possible de manipuler les vnements auxquels sont lis les lments
HTML, en utilisant leurs mthodes associes :
window.document.nom_element.methode();
Par exemple, lenvoi dun formulaire, qui correspond lvnement HTML onsubmit, se fera par
linstruction Javascript :
window.document.nom_formulaire.submit();
12
12
Description
Quand linternaute arrte le chargement dune
image
Quand un objet HTML na plus le focus
Quand un objet HTML a t modifi et quil na
plus le focus
Quand linternaute clique sur un objet HTML
Quand linternaute double clique sur un objet
HTML
Quand le chargement de la page ou dune
image a entrain une erreur
Quand un objet HTML a le focus (cliquer dans
un champ par exemple)
Quand linternaute appuie sur une touche de
son clavier
Quand une touche du clavier est enfonce
(combinaison de onKeyDown et onKeyUp)
Quand linternaute "lche son doigt" dune
touche alors enfonce
Quand le changement de la page est fini
Quand linternaute appuie sur un bouton de la
souris
Quand linternaute dplace sa souris
Quand linternaute enlve sa souris sans
cliquer dun objet HTML
Quand linternaute met sa souris sans cliquer
sur un objet HTML
Quand linternaute "lche son doigt" dun
bouton de sa souris alors enfonc
Quand une fentre ou une frame est dplace
Quand un formulaire est remis zro (avec un
bouton [Reset])
Quand linternaute redimensionne sa fentre
de navigateur
Quand la position de la barre de dfilement est
modifie
Quand linternaute slectionne du texte dans
un objet HTML
Quand le formulaire est envoy, quand
linternaute clique sur un bouton [Envoyer]
Quand une page est quitte
onAbort
onBlur
onChange
onClick
onDbClick
onError
onFocus
onKeyDown
onKeyPress
onKeyUp
onLoad
onMouseDown
onMouseMove
onMouseOut
onMouseOver
onMouseUp
onMove
onReset
onResize
onScroll
onSelect
onSubmit
onUnLoad
13
13
2.1.3 Exemples
Example 2.1 Changement de classe dun lien
<a href = "mon_url.html" class = "ma_classe1" on mouseover= "this.classname = ma_classe2"
onmouseout = "this.classname=ma_classe1">mon lien change de forme avec le passage de la souris</a>
14
14
onMouseOut="img.src=mon_img. -
Chapter 3
Dans le cours HTML, nous avons tudi les formulaires, permettant lutilisateur de rentrer des donnes
dans une page Web. Pour le bon fonctionnement dune application, une vrification des donnes est
souvent ncessaire. Par exemple, il vaut mieux vrifier quune date est bien valide avant de tenter de
linsrer dans une base de donnes. Cette validation des donnes peut se faire de deux manires :
du ct du serveur : les donnes sont envoyes travers le rseau, et un programme vrifie quelles
sont valides. Mais ce mode de traitement ncessite de surcharger le serveur et encombre le rseau.
du ct du client : avant de poster les donnes du formulaire, il est possible de programmer le navigateur pour quil effectue lui-mme ces vrifications. Cest donc au niveau de la page contenant
le formulaire quil faut crire un programme Javascript ralisant ces oprations de contrle .
15
15
<html>
<head>
<title></title>
<script language="JavaScript">
function verif_form(){ var temoin = 0;
if(document.formulaire.nom.value == ""){
alert("Le champ \"Nom\" est vide");
return false;
}
if(document.formulaire.prenom.value == ""){
alert("Le champ \"Prnom\" est vide");
return false;
}
if(document.formulaire.sexe.selectedIndex == 0){
alert("Vous navez pas choisi votre sexe");
return false;
}
for(i=0;i<document.formulaire.loisir.length;i++){
if(document.formulaire.loisir[i].checked){
++temoin;
}
}
if(temoin != 3){
alert("Vous devez choisir 3 loisirs !");
return false;
}
return true;
}
</script>
</head>
<body>
<form action="monmail@greta.fr"
method="post" name="formulaire" onSubmit="return verif_form()">
Votre nom <input type="text" name="nom"><br>
Votre prnom <input type="text" name="prenom"><br>
Sexe :
<select name="sexe">
<option>Choisissez</option>
<option value="h">Homme</option>
<option value="f">Femme</option>
</select><br>
Vos loisirs : (3 choix)<br><hr>
<input type="checkbox" name="loisir" value="javascript">Le JavaScript<br>
<input type="checkbox" name="loisir" value="couture">La couture<br>
<input type="checkbox" name="loisir" value="cinma">Le cinma<br>
<input type="checkbox" name="loisir" value="tl">La tlvision<br>
<input type="checkbox" name="loisir" value="marche">La marche<br>
<input type="checkbox" name="loisir" value="sport">Le sport<br>
<input type="checkbox" name="loisir" value="lecture">La lecture<br>
<input type="checkbox" name="loisir" value="cheval">Le cheval<br>
<input type="checkbox" name="loisir" value="dormir">Dormir<br>
<hr>
<input type="submit">
</form>
</body>
</html>
16
16
3.2
Vous lavez vu, Javascript est un langage trs complet, permettant de donner du dynamisme aux pages
en appliquant la programmation du ct client. Nous avons aussi la possibilit de dcharger le serveur
dune partie de son travail, en utilisant le contrle de saisie des champs des formulaires.
Javascript demande quand mme une certaine exprience en programmation, avant de pouvoir
raliser des menus droulants, des applications graphiques, etc.. mais reprsente une alternative srieuse
aux solutions propritaires telles que Flash ou autres Plug-Ins, dont la gratuit nest pas garantie dans
lavenir.
Un bon moyen de se familiariser avec Javascript est tout simplement daller chercher des exemples
de ralisation de scripts sur Internet. Un site en particulier recense de nombreux exemples, organiss
par catgorie :
http://javascript.internet.com/
Il existe galement de nombreuses ressources documentaires sur Javascript, telles que des cours et
des tutoriaux. Un bon portail vers des sites sur Javascript, et intgrant lui-mme un cours trs complet
sur ce langage est :
http://www.le-webmestre.net
17
17