moon136
Messages postés71Date d'inscriptionsamedi 12 août 2017StatutMembreDernière intervention17 avril 2018
-
Modifié le 12 août 2017 à 14:59
moon136
Messages postés71Date d'inscriptionsamedi 12 août 2017StatutMembreDernière intervention17 avril 2018
-
13 août 2017 à 22:57
Bonjour,
J'ai un problème dans mon formlaire, je souhaite faire disparaitre le NaN et mettre le champ à 0 lorsque je rentre une quantité, voici mon script :
var VerifFormulaire = 0;
function conditionsVerifiees() {
var erreur=0;
var erreurnom=0;
var erreurmail=0;
var Nom = document.getElementById("nom").value;
var Mail = document.getElementById("mail").value;
var testMail = Mail.search("@");
var IDNom = document.getElementById("nom");
var IDMail = document.getElementById("mail");
var Condition = document.getElementById("cg").checked;
VerifFormulaire = 1;
if (Nom == "") {
alert("Merci de saisir un nom.");
IDNom.style.borderColor = "#FF0000";
erreur++;
erreurnom=1;
}
else if (Mail=="") {
IDNom.style.borderColor = "#808080";
alert("Merci de rentrer votre adresse e-mail");
IDMail.style.borderColor = "#FF0000";
erreur++;
erreurmail=1;
}
else if (Mail !=="" && testMail <= 0) {
alert("Votre adresse e-mail n'est pas valide.");
IDMail.style.borderColor = "#FF0000";
erreur++;
erreurmail=1;
}else if (Condition==false) {
document.getElementById("cg").style.borderColor = "#FF0000";
alert("Avant l'envoie du formulaire, veuillez accepter les conditions générales en cochant la case.");
erreur++;
}else
{
document.getElementById("cg").style.borderColor = "#808080";
var nomMinuscules = Nom, nomMajuscules = nomMinuscules.toUpperCase();
Nom = nomMajuscules;
}
if (erreurnom==0) {
IDNom.style.borderColor = "#808080";
}
if (erreurmail==0) {
IDMail.style.borderColor = "#808080";
}
if (erreur>0)
return VerifFormulaire=0
else{
return VerifFormulaire=1;
redirect;
}
}
// Fonction impression du formulaire
function impressionFormulaire() {
window.print();
}
// Fonction On change value
function CalculerTotal() {
var Valeur;
var choix;
Valeur = parseInt(document.getElementById("nbpl1").value);
alert(Valeur);
choix = document.getElementById("resrv1").value;
if (Valeur != ""){
if (choix=="demijour")
Valeur = Valeur*8;
else
if (choix=="jour")
Valeur = Valeur*15;
else
if (choix=="repas")
Valeur = Valeur*7;
document.getElementById("st1").value = Valeur+" euros" ;
}else
Valeur = 0;
var Valeur2=0;
Valeur2 = parseInt(document.getElementById("nbpl2").value);
choix = document.getElementById("resrv2").value;
if (Valeur2!==''){
if (choix=="demijour")
Valeur2 = Valeur2*8;
else
if (choix=="jour")
Valeur2 = Valeur2*15;
else
if (choix=="repas")
Valeur2 = Valeur2*7;
document.getElementById("st2").value = Valeur2+" euros" ;
}else
valeur2 = 0;
var Valeur3, totalht, tva, totalttc;
Valeur3 = parseInt(document.getElementById("nbpl3").value);
choix = document.getElementById("resrv3").value;
if (Valeur3!=''){
if (choix=="demijour")
Valeur3 = Valeur3*8;
else
if (choix=="jour")
Valeur3 = Valeur3*15;
else
if (choix=="repas")
Valeur3 = Valeur3*7;
document.getElementById("st3").value = Valeur3+" euros" ;
}else
Valeur3 = 0;
if((isNaN(nbpl1))||(isNaN(nbpl2))||(isNaN(npbl3))){
alert("Veuillez entrer une quantité en chiffre");
}
totalht = Valeur+Valeur2+Valeur3;
tva = (totalht*20)/100;
totalttc = totalht+tva;
totalttc = totalttc.toFixed(2);
document.getElementById("st").value = totalht;
document.getElementById("total").value = totalttc;
}
// Vérification du formulaire
function testFormReservation() {
if(VerifFormulaire == 0) {
alert("Veuillez vérifier votre formulaire avant son envoi.");
}
else {
document.getElementById("formulaire").submit();
}
}
window.addEventListener("load", function () {
document.getElementById("verifier").addEventListener("click", conditionsVerifiees);
document.getElementById("envoyer").addEventListener("click", testFormReservation);
document.getElementById("imprimer").addEventListener("click", impressionFormulaire);
document.getElementById("nbpl1").addEventListener("change", CalculerTotal);
document.getElementById("nbpl2").addEventListener("change", CalculerTotal);
document.getElementById("nbpl3").addEventListener("change", CalculerTotal);
document.getElementById("resrv1").addEventListener("change", CalculerTotal);
document.getElementById("resrv2").addEventListener("change", CalculerTotal);
document.getElementById("resrv3").addEventListener("change", CalculerTotal);
});
C'est quelle quantité? Quelle ligne du code? Car là j'ai pas envie de chercher dans tous ton code où il y a une erreur.
Si tu as NaN (Not a Number) c'est que t'essayes de convertir du texte en chiffre, donc "0" devient 0 mais "Plop" devient NaN, tout comme "0 Plop".
Tu peux toujours vérifier si c'est un chiffre ou non avec la fonctionne isNaN().
Ou ajouter une ligne comme
quantite = quantite || 0
. Ici si quantite équivaut à false, null, undefined, 0, "" ( chaine vide ), NaN ( Not a Number ) alors ça retourne 0.
moon136
Messages postés71Date d'inscriptionsamedi 12 août 2017StatutMembreDernière intervention17 avril 2018 12 août 2017 à 21:57
Merci pour ta réponse , donc à la ligne 121 du script j'ai mis
if((isNaN(nbpl1))||(isNaN(nbpl2))||(isNaN(npbl3))){
alert("Veuillez entrer une quantité en chiffre");
}
la ligne que tu me conseil ou dois je la placer ?
merci pour ton aide c'est sympa
moon136
Messages postés71Date d'inscriptionsamedi 12 août 2017StatutMembreDernière intervention17 avril 2018
>
moon136
Messages postés71Date d'inscriptionsamedi 12 août 2017StatutMembreDernière intervention17 avril 2018 13 août 2017 à 22:57
12 août 2017 à 21:57
la ligne que tu me conseil ou dois je la placer ?
merci pour ton aide c'est sympa
13 août 2017 à 22:57