Code source du projet du message codé en JavaScript

Voir le résultat   Retour à la page du projet

Afficher/Masquer les commentaires

<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8"/>
<title>Calculette T.T.C.</title>
<style>

L'interface utilisateur est incluse dans un élément div, dont l'id est fond, nous définissons ici une règle CSS pour cette div :

	#fond{
		padding:10px;
		border:1px solid blue;
		background-color:lightblue;
	}
</style>
</head>
<body>

Interface utilisateur

L'ensemble de l'interface figure dans un élément div et comporte :

<div id="fond">
<p>Prix H.T. : <input id="entree" type="text" /></p>
<p><input id="boutonValider" type="button" value="Calculer" /></p>
<p>Résultat : <span id="resultat"></span></p>
</div>

Code JavaScript du programme

<script>

Pour pouvoir interagir avec les éléments de l'interface utilisateur nous devons y faire référence en définissant des variables avec la commande document.getElementById.

	var entree=document.getElementById("entree");
	var boutonValider=document.getElementById("boutonValider");
	var resultat=document.getElementById("resultat");

Nous définissons sur le bouton un gestionnaire d'événement pour l'événement onclick.

Cela signifie que chaque fois que l'utilisateur clique sur le bouton, la fonction du gestionnaire est appelée ce qui entraîne :

	boutonValider.onclick=function(){
		afficheTTC();
		entree.focus();
	}

Nous définissons sur la zone de saisie un gestionnaire d'événement onkeypress.

Chaque fois que l'utilisateur appuie sur une touche depuis la zone de saisie les instructions suivantes sont exécutées :

	entree.onkeypress=function(event){
		resultat.innerHTML="";
		if(event.keyCode==13){
			afficheTTC();
		}
	}				

Cette fonction s'occupe de calculer et afficher le résultat.

	function afficheTTC(){

Pour calculer la somme T.T.C. nous récupérons le contenu de la zone de saisie : il s'agit d'une chaîne de caractères, en appliquant la fonction parseFloat nous obtenons le nombre saisi.

Dans le cas où un utilisateur malicieux n'a pas saisi un nombre, la fonction parseFloat retourne la valeur spéciale NaN : Not a Number.

Nous multiplions la valeur par 120 et arrondissons le résultat, en divisant le tout par 100 nous obtenons un résultat arrondi au centième.

		var sommeTTC=Math.round(parseFloat(entree.value)*120)/100;

Dans le cas où l'utilisateur n'a pas rentré un nombre, sommeTTC contient NaN, le test qui figure ici permet alors d'afficher le message : "Erreur de saisie". Dans le cas contraire le résultat est affiché.

A noter que l'affichage du message/résultat consiste à définir le contenu de l'élément span de l'interface utilisateur en définissant sa propriété innerHTML.

		if(isNaN(sommeTTC)){
			resultat.innerHTML="Erreur de saisie";
		} else {    	
			resultat.innerHTML=sommeTTC;
		}
	}

Dès le chargement de la page la zone d'entrée reçoit le curseur.

	entree.focus();
</script>
</body>
</html>