onsubmit() se met dans la balise form.
il faut de même ajouter return dans le onSubmit : onSubmit="return Verification()">
return false permet de bloquer l'envoi du formulaire
A compléter
Contrôler l'adresse email pour voir si il y a le signe "@" puis le "."
Controler le type pour un numéro de téléphone avec isNa() par exemple.
Pour afficher le texte à côté du champ, il faut le gérer avec des display inline et non en CSS.
HTML
<form name="monformulaire1" action="" method="post" onSubmit="return Verification()">
<label for="idNom">Nom <span class="text-danger">*</span></label>
<input type="text" name="nom" id="idNom">
<br><br>
<label for="idPrenom">Prénom</label>
<input type="text" name="prenom" id="idPrenom">
<br><br>
<label for="idEmail">Email <span class="text-danger">*</span></label>
<input type="text" name="email" id="idEmail">
<br><br>
<label for="idTel">Téléphone</label>
<input type="text" name="tel" id="idTel">
<br><br>
<input type="submit" name="valider" value="Envoyer">
</form>
Javascript
<script>
function validateEmail(email) {
var re = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
return re.test(email);
}
function Verification() {
// Récupérer lavaleur des champs nom et email
var Nom = document.getElementById('idNom').value;
var Email = document.getElementById('idEmail').value;
// Contrôle sur le nom
if(Nom==''){
alert('Vous devez compléter votre nom !');
document.getElementById('idNom').style.backgroundColor="red";
document.getElementById('idNom').style.color="#FFF";
// Permet de bloquer l'envoi du formulaire
return false;
}
else{
document.getElementById('idNom').style.backgroundColor="#9C6";
}
// Contrôle sur l'email
if(Email=='') {
alert('Vous devez compléter votre adresse email');
document.getElementById('idEmail').style.backgroundColor="red";
document.getElementById('idEmail').style.color="#FFF";
return false;
}
else{
document.getElementById('idEmail').style.backgroundColor="#9C6";
}
}
</script>
document.write('<span style=\'color:red\'>A compléter</span>'); ne fonctionne pas, il efface le contenu du formulaire.
HTML
<form name="monformulaire2" action="" method="post">
<label for="idHT">HT</label>
<input type="text" name="HT" id="idHT" onBlur="Calcul();">
<br><br>
<label for="idTTC">TTC</label>
<input type="text" name="TTC" id="idTTC" readonly>
<br><br>
<input type="submit" name="valider" value="Envoyer">
</form>
Javascript
<script>
function Calcul() {
// Récupérer la valeur du prix HT
PrixHT = document.getElementById('idHT').value;
// On clacul le prix TTC, on stocke le résultat dans la variable TTC
var PrixTTC = PrixHT*1.2;
// On affecte la valeur de la variable TTC à la valeur du champ idTTC
document.getElementById('idTTC').value= PrixTTC;
}
</script>
HTML
On utilise l'événement onBlur(), autrement dit lorsque l'on perd le focus sur le champ
On peut noter qu'il est bien sur le champ HT et non sur TTC.
Javascript
document.getElementById('idHT').value;
permet de récupérer la valeur du champ
HT.
document.getElementById('idTTC').value= PrixTTC;
On affecte ici le résultat du calcul de la variable Prix TTC
Exercice identique avec test de la valeur saisie
A la différence de l'exemple précédent on utilisera onChange() sur le select.
<select id="idPrix" onChange="Calcul()">
HTML
<form name="monformulaire3" action="" method="post">
<label for="idHT">HT</label>
<select id="idPrix" onChange="Calcul()">
<option value="10">10</option>
<option value="20">20</option>
<option value="30">30</option>
<option value="40">40</option>
</select>
<br><br>
<label for="idTTC">TTC</label>
<input type="text" name="TTC" id="idTTC" readonly>
<br><br>
<input type="submit" name="valider" value="Envoyer">
</form>
Javascript
<script>
function Calcul() {
// Récupérer la valeur du prix HT
PrixHT = document.getElementById('idHT').value;
// On clacul le prix TTC, on stocke le résultat dans la variable TTC
var PrixTTC = PrixHT*1.2;
// On affecte la valeur de la variable TTC à la valeur du champ idTTC
document.getElementById('idTTC').value= PrixTTC;
}
</script>
HTML
Formulaire 1
<form name="monformulaire1" action="" method="post">
<label for="idHT">HT</label>
<input type="text" name="HT" id="idHT" onBlur="Calcul(this.value,1)">
<br><br>
<label for="idTTC">TTC</label>
<input type="text" name="TTC" id="idTTC" readonly>
<br><br>
<input type="submit" name="valider" value="Envoyer">
</form>
Formulaire 2
<form name="monformulaire2" action="" method="post">
<label for="idHT">HT</label>
<select id="idPrix" onChange="Calcul(this.value,2)">
<option value="10">10</option>
<option value="20">20</option>
<option value="30">30</option>
<option value="40">40</option>
</select>
<br><br>
<label for="idTTC">TTC</label>
<input type="text" name="TTC" id="idTTC1" readonly>
<br><br>
<input type="submit" name="valider" value="Envoyer">
</form>
Javascript
<script>
// function avec 2 paramètres
function Calcul(CalculTTC,Cas) {
// Calcul de la variable TTC en utilisant le 1er paramétre passé dans la fonction
var TTC = CalculTTC*1.2;
if(Cas==1) { // test du paramétre Cas
document.getElementById('idTTC').value= TTC;
}
else if(Cas==2){ // test du paramétre Cas
document.getElementById('idTTC1').value= TTC;
}
else {
}
}
</script>
Avec un bouton radio
Constitue à changer la propriété CSS , soit sisplay:block, soit display:none
Afficher MasquerDate
HTML
Afficher <input name="regle" type="radio" onClick="afficher();" value="Oui">
Masquer <input type="radio" name="regle" value="Non" onClick="cacher();">
<p id="champ_cache">Date <input type="text" name="date_regle" value=""></p>
Javascript
<script type="text/javascript">
document.getElementById("champ_cache").style.display = "none";
function afficher(){
document.getElementById("champ_cache").style.display = "block";
}
function cacher(){
document.getElementById("champ_cache").style.display = "none";
}
</script>
avec une structure conditionnelle et un paramétre dans la fonction
Toujours sur des boutons radios
HTML
<form name="form1" action="" method="post">
<input type="radio" name="personne" id="ouiCli" value="oui" onchange="choixPersonne('cacher1')"> Chauffeur
<input type="radio" name="personne" id="nonCli" value="non" onchange="choixPersonne('cacher2')"> Sous Traitant
<br><br>
<!-- Champs cachés -->
<div id="chauffeur" style="display:none">
<label for="nom_chauffeur">Nom</label>
<input name="nom_chauffeur" id="nom_chauffeur" type="text"><br><br>
<label for="num_cin_chauffeur">N° CIN</label>
<input name="num_cin_chauffeur" id="num_cin_chauffeur" type="text">
</div>
<div id="sous_traitant" style="display:none">
<label>Nom sous-Traitant</label>
<input name="nom_sous_traitant" id="nom_sous_traitant" type="text">
</div>
<!-- Fin des champs cachés -->
<br>
<input type="submit" name="button" id="button" value="Envoyer">
</form>
Javascript
<script>
function choixPersonne(chaine){
var a = document.getElementById("chauffeur");
var b = document.getElementById("sous_traitant");
if (chaine == 'cacher1'){
// Contraction du code commenté ci dessous
a.style.display = "block";
b.style.display = "none";
/*var a = document.getElementById("chauffeur").style.display="block";
var b = document.getElementById("sous_traitant").style.display="none";*/
}
else if (chaine == 'cacher2'){
// Contraction du code commenté ci dessous
a.style.display = "none";
b.style.display = "block";
/*var a = document.getElementById("chauffeur").style.display="none";
var b = document.getElementById("sous_traitant").style.display="block";*/
}
}
</script>