Formulaire quand tu me tiens...

Kanerian Messages postés 13 Date d'inscription mardi 17 décembre 2013 Statut Membre Dernière intervention 18 décembre 2013 - Modifié par Kanerian le 17/12/2013 à 16:28
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 - 18 déc. 2013 à 19:14
Bonjour,


J'ai un petit souci au niveau de mon formulaire! Je dois faire un formulaire qui sera utiliser dans mes fonction. En gros on remplie le formulaire et sa nous donne le montant que l'on doit payer. :P

Or... Rien ne marche! Comme si j'avais oublier de faire en sortes que mon formulaire soit utiliser dans mes fonction. Je suis assez débutante à vrai dire, mais l'école nous fais faire de drôle de chose. :P


Si vous voulez jeter un petit coup d'oeil et essayer de m'aider à me faire comprendre mon erreur, je vous en serait reconnaissante!

<body>

<script>

/*Caractère prenom, nom, telephone, adresse, materiel, codepostal, message
Réel piedscarres, montantsoustotal, montanttaxes*/


message = "";

if (frm.prenom.value ==""){
message = message + "Veuillez entrer votre prénom! <br>";
document.getElementById("prenom");
}

if (frm.nom.value == ""){
message = message + "Veuillez entrer votre nom! <br>";
document.getElementById("nom");
}

if (frm.telephone.value == ""){
message = message + "Veuillez entrer un numéro de téléphone valide! <br>";
document.getElementById("prenom");
}

if (frm.adresse.value == ""){
message = message + "Veuillez entrer votre adresse! <br>";
document.getElementById("prenom");
}

if (frm.codepostal.value == ""){
message = message + "Veuillez entrer votre code postal! <br>";
document.getElementById("prenom");
}
if (frm.materiel.value == ""){
message = message + "Veuillez entrer un choix de matériel! <br>";
document.getElementById("prenom");
}

if (frm.prenom.value == ""){
message = message + "Veuillez entrer votre prénom! <br>";
document.getElementById("prenom");
}

if (frm.piedscarres.value == ""){
message = message + "Veuillez entrer le nombre de pieds carrés que vous désirez recouvrir! <br>";
document.getElementById("prenom");
}

if (message == ""){
montantsoustotal = soustotal (materiel, piedscarres);
montanttaxes= taxes (montantsoustotal);
window.prompt("Merci de nous faire confiance. Notre estimation pour vos besoin est de" +montantsoustotal + " $+ montanttaxes ( "+ montanttaxes+"$)", "");
}
else {
document.getElementById("message")
}



function estRempli(frm)
{
var retour;
if (frm == "") {
return false;
}
else {
return true;
}
return retour
}

var regexObj = /^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/;

if (regexObj.test(subjectString)) {
var formattedPhoneNumber =
subjectString.replace(regexObj, "($1) $2-$3");
} else {
// Invalid phone number
}


function CodePostalValide(frm) {
entry=document.getElementById(codepostal).value;
strlen=entry.length;
if(strlen!==6) {
return false;
}
// au cas où il a été entré en minuscules
entry=entry.toUpperCase();

// valeurs permises
s1='ABCEGHJKLMNPRSTVXY';
s2=s1+'WZ';
d3='0123456789';

// compare, une par une, les valeurs entrées à celles permises
if(s1.indexOf(entry.charAt(0))<0){
return false;
}
if(d3.indexOf(entry.charAt(1))<0){
return false;
}
if(s2.indexOf(entry.charAt(2))<0){
return false;
}
if(d3.indexOf(entry.charAt(3))<0){
return false;
}
if(s2.indexOf(entry.charAt(4))<0){
return false;
}
if(d3.indexOf(entry.charAt(5))<0){
return false;
}

// le code postal est valide !
return true;
}

function sousTotal( materiel,PeidsCarre){
var prixavantrabais ;
var montant;
var MontrantAvantRabais1;
var MontrantAvantRabais2;
var MontrantAvantRabais3;
var multiplicateur_piedsCarres ;
var multiplicateur_montant1;
var multiplicateur_montant2;
var multiplicateur_montant3;

// Initialisation des variables en fonction du matériel...
switch (materiel) {
case "bois": <!-- Dans le cas ou le bois est choisi -->
MontrantAvantRabais1=10000;
MontrantAvantRabais3=15000;
MontrantAvantRabais3=20000;
multiplicateur_piedsCarres=7;
multiplicateur_montant1=0.95;
multiplicateur_montant1=0.93;
multiplicateur_montant1=0.92;
break;
case "brique ":
MontrantAvantRabais1=12000;
MontrantAvantRabais2=17000;
MontrantAvantRabais3=22000;
multiplicateur_piedsCarres=9;
multiplicateur_montant1=0.95;
multiplicateur_montant1=0.93;
multiplicateur_montant1=0.92;
break;
default: // SI Pierre
MontrantAvantRabais1=15000;
MontrantAvantRabais2=20000;
MontrantAvantRabais3=25000;
multiplicateur_piedsCarres=12;
multiplicateur_montant1=0.94;
multiplicateur_montant1=0.92;
multiplicateur_montant1=0.90;
break;
}

// Calcul du prix :
prixavantrabais = PeidCarre * multiplicateur_piedsCarres;
switch (true) {
case prixavantrabais <= MontrantAvantRabais1:
montant = prixavantrabais;
break;
case prixavantrabais <=MontrantAvantRabais2:
montant = prixavantrabais * multiplicateur_montant1;
break;
case prixavantrabais <=MontrantAvantRabais3:
montant = prixavantrabais * multiplicateur_montant2;
break;
default:
montant = prixavantrabais * multiplicateur_montant3;
break;
}

return montant;
}


function taxes(frm)
{
return parseInt(montant) + (parseInt(montant)*0.05) + (ParseInt(montant)+0.09975)
}
</script>

<form name="soumission" action="" method="post" onsubmit="return valider(this)">


<table width="30%" border="0">
<tr>
<td width="43%" valign="top"><label for="txtprenomnom" id="lblprenom" class="normal">Prénom : </label></td>
<td width="57%" valign="top"><input type="text" class="textnormal" name="txtprenom" id="txtprenom" /></td>
</tr>
<tr>
<td valign="top"><label for="txtnom" class="normal" id="lblnom">Nom :</label></td>
<td valign="top"><input type="text" name="txtnom" class="textnormal" id="txtnom" /></td>
</tr>
<tr>
<td valign="top"><label for="txttel" class="normal" id="lbltel">Téléphone :</label></td>
<td valign="top"><input type="tel" name="txttel" class="textnormal" id="txttel" /></td>
</tr>
<tr>
<tr>
<td valign="top"><label for="txtadresse" class="normal" id="lbladresse">Adresse :</label></td>
<td valign="top"><input type="text" name="txtadresse" class="textnormal" id="txtadresse" /></td>
</tr>
<tr>
<td valign="top"><label for="txtcodepostal" class="normal" id="lblcodepostal">Code Postal :</label></td>
<td valign="top"><input type="text" name="txtcodepostal" class="textnormal" id="txtcodepostal" /></td>
</tr>
<tr>
<td valign="top"><label for="txtpiedsCarres" class="normal" id="lblpeidsCarres">Pieds carrés :</label></td>
<td valign="top"><input type="text" name="txtpeidsCarres" class="textnormal" id="txtpiedsCarres" /></td>
</tr>

</tr>

</table>
<div id="resultat"></div>
Entrez votre choix de matériel :
<SELECT NAME="list">
<OPTION VALUE="1">Bois
<OPTION VALUE="2">Brique
<OPTION VALUE="3">Pierre
</SELECT>
<tr>
<td colspan="2" align="center"><input type="submit" name="cmdenvoyer" id="cmdenvoyer" value="Envoyer" /></td>
</tr>
</form>


</body>



Merci énormément!

7 réponses

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
18 déc. 2013 à 11:52
Si tu veux, tu peux tester cette page html :

<html>
<head>
<title> TEST Formulaire </title>
</head>

<body>

<!-- FONCTIONS JAVASCRIPT -->
<script type="text/javascript">

function Mafonction(){
// -> Recupération des variables :
  var Choixmateriel = document.getElementById('listMateriel').value;
  var MontantPeidsCarre  = document.getElementById('piedCarre').value;
// -> SousTotal
  var SousTot = sousTotal( Choixmateriel,MontantPeidsCarre);
   //alert(SousTot);
// -> Affichage dans le DIV
   MaDiv = document.getElementById('resultat');
   MaDiv.innerHTML = "Le resultat est :<b>" + SousTot + "  </b>";
  
}

function sousTotal( materiel,PeidCarre){
 var prixavantrabais ;
 var montant;
 var MontrantAvantRabais1;
 var MontrantAvantRabais2;
 var MontrantAvantRabais3;
 var multiplicateur_piedsCarres ;
 var multiplicateur_montant1;
 var multiplicateur_montant2;
 var multiplicateur_montant3;

 // Initialisation des variables en fonction du matériel...
switch (materiel) {
 case "bois": <!-- Dans le cas ou le bois est choisi -->
     MontrantAvantRabais1=10000; 
     MontrantAvantRabais3=15000; 
     MontrantAvantRabais3=20000; 
     multiplicateur_piedsCarres=7;
     multiplicateur_montant1=0.95;
     multiplicateur_montant2=0.93;
     multiplicateur_montant3=0.92;
     break;
 case "brique ":
     MontrantAvantRabais1=12000; 
     MontrantAvantRabais2=17000; 
     MontrantAvantRabais3=22000; 
     multiplicateur_piedsCarres=9;
     multiplicateur_montant1=0.95;
     multiplicateur_montant2=0.93;
     multiplicateur_montant3=0.92;
     break;
 default: // SI Pierre
     MontrantAvantRabais1=15000; 
     MontrantAvantRabais2=20000; 
     MontrantAvantRabais3=25000; 
     multiplicateur_piedsCarres=12;
     multiplicateur_montant1=0.94;
     multiplicateur_montant2=0.92;
     multiplicateur_montant3=0.90;
     break;
}

// Calcul du prix :
 prixavantrabais = PeidCarre * multiplicateur_piedsCarres;
switch (true) {
 case  prixavantrabais <= MontrantAvantRabais1:
      montant = prixavantrabais;
      break;
 case prixavantrabais <=MontrantAvantRabais2:
     montant = prixavantrabais * multiplicateur_montant1;
     break;
 case prixavantrabais <=MontrantAvantRabais3:
     montant = prixavantrabais * multiplicateur_montant2;
     break;
 default: 
     montant = prixavantrabais * multiplicateur_montant3;
     break;
}

return montant;
}
</script>


<!-- Formulaire HTML -->
<label for="txtpiedsCarres" class="normal" id="lblpiedsCarres">Pieds carrés :</label>
<br>
<input type="text" 
	   id="piedCarre" 
	   value=""
	>
<br>
   Entrez votre choix de matériel : 
   <br>
   <SELECT NAME="listMateriel" id="listMateriel"> 
   <OPTION VALUE="1">Bois </OPTION>
   <OPTION VALUE="2">Brique </OPTION> 
   <OPTION VALUE="3">Pierre </OPTION>
   </SELECT> 

<br>
<br> 
 <input type="button" 
		id="valider" 
		value="GO!"
		onclick="Mafonction();"	
	>
<br>
<div id="resultat">
</div>	
 </body>
</html>



NB : Tu remarqueras que j'ai corrigé une petite erreur.. (dans mon code précédent, j'avais oublié d'incrémenter, pour le nom des mes variables multiplicateur_montant.. ( tu n'avais que : multiplicateur_montant1.. hors.. il faut aussi un multiplicateur_montant2 et un multiplicateur_montant3..)
multiplicateur_montant1=0.94;
multiplicateur_montant1=0.92;
multiplicateur_montant1=0.90;

Remplacé par :
multiplicateur_montant1=0.94;
multiplicateur_montant2=0.92;
multiplicateur_montant3=0.90;

1
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
18 déc. 2013 à 13:50
Je viens de voir également que ton SELECT utilisait, non pas le nom des matériel, mais des valeurs (1.2.3..).
Donc, soit tu modifie le switch (materiel) pour utiliser ces valeurs ( CASE 1 ;.... CASE 2 ... etc. ),
Soit, tu modifie ton SELECT comme ceci :
   <br>
   <SELECT NAME="listMateriel" id="listMateriel"> 
   <OPTION VALUE="bois">Bois </OPTION>
   <OPTION VALUE="brique">Brique </OPTION> 
   <OPTION VALUE="pierre">Pierre </OPTION>
   </SELECT> 
0
Kanerian Messages postés 13 Date d'inscription mardi 17 décembre 2013 Statut Membre Dernière intervention 18 décembre 2013
18 déc. 2013 à 17:44
Ah merci beaucoup. Pff, c'est compliqué tout ça. XD J'essaie de tout faire, mais on dirait que plus j'essaie, plus que je m'embrouille. Par-contre, je trouves ta techniques beaucoup plus simple qu'avec un If. :)
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
17 déc. 2013 à 16:26
Par contre, merci d'utiliser la coloration syntaxique pour poster du code.
http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
17 déc. 2013 à 16:29
Pour ce qui est de ton souci... je vois que tu utilise une variable "frm".
Hors.. je ne trouve pas son initialisation dans ton code..

Interesse toi à l'utilisation du DOM en javascript.
Par exemple, pour lire le contenu d'un INPUT dont l'id serait : "toto", tu dois écrire quelquechose du genre :


var MaValue = document.getElementByID("toto").value;
alert(MaValue );
0
Kanerian Messages postés 13 Date d'inscription mardi 17 décembre 2013 Statut Membre Dernière intervention 18 décembre 2013
17 déc. 2013 à 17:11
Oui, c'est aussi ce que j'ai fini par me dure aussi en regardant d'ancien exercices.

Là pour le moment j'en suis là, mais rien ne marche plus.

<body>

<script>
function valider(frm){
/*Caractère prenom, nom, telephone, adresse, materiel, codepostal, message
Réel piedscarres, montantsoustotal, montanttaxes*/


message = "";

if (txt.prenom.value ==""){
message = message + "Veuillez entrer votre prénom! <br>";
document.getElementById("txtprenom");
}

if (txt.nom.value == ""){
message = message + "Veuillez entrer votre nom! <br>";
document.getElementById("txtnom");
}

if (txt.telephone.value == ""){
message = message + "Veuillez entrer un numéro de téléphone valide! <br>";
document.getElementById("txttel");
}

if (txt.adresse.value == ""){
message = message + "Veuillez entrer votre adresse! <br>";
document.getElementById("txtadresse");
}

if (txt.codepostal.value == ""){
message = message + "Veuillez entrer votre code postal! <br>";
document.getElementById("txtcodepostal");
}
if (txt.resultat.value == ""){
message = message + "Veuillez entrer un choix de matériel! <br>";
document.getElementById("txtresultat");
}


if (txt.piedscarres.value == ""){
message = message + "Veuillez entrer le nombre de pieds carrés que vous désirez recouvrir! <br>";
document.getElementById("txtpiedscarres");
}

if (message == ""){
montantsoustotal = soustotal (materiel, piedscarres);
montanttaxes= taxes (montantsoustotal);
window.prompt("Merci de nous faire confiance. Notre estimation pour vos besoin est de" +montantsoustotal + " $+ montanttaxes ( "+ montanttaxes+"$)", "");
}
else {
document.getElementById("message")
}



function estRempli(frm)
{
var retour;
if (frm == "") {
return false;
}
else {
return true;
}
return retour
}

var regexObj = /^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/;

if (regexObj.test(subjectString)) {
var txttel =
subjectString.replace(regexObj, "($1) $2-$3");
} else {
return true;
}


function CodePostalValide(frm) {
entry=document.getElementById("txtcodepostal").value;
strlen=entry.length;
if(strlen!==6) {
return false;
}
// au cas où il a été entré en minuscules
entry=entry.toUpperCase();

// valeurs permises
s1='ABCEGHJKLMNPRSTVXY';
s2=s1+'WZ';
d3='0123456789';

// compare, une par une, les valeurs entrées à celles permises
if(s1.indexOf(entry.charAt(0))<0){
return false;
}
if(d3.indexOf(entry.charAt(1))<0){
return false;
}
if(s2.indexOf(entry.charAt(2))<0){
return false;
}
if(d3.indexOf(entry.charAt(3))<0){
return false;
}
if(s2.indexOf(entry.charAt(4))<0){
return false;
}
if(d3.indexOf(entry.charAt(5))<0){
return false;
}

// le code postal est valide !
return true;
}

function sousTotal( materiel,PeidsCarre){
var prixavantrabais ;
var montant;
var MontrantAvantRabais1;
var MontrantAvantRabais2;
var MontrantAvantRabais3;
var multiplicateur_piedsCarres ;
var multiplicateur_montant1;
var multiplicateur_montant2;
var multiplicateur_montant3;

// Initialisation des variables en fonction du matériel...
switch (materiel) {
case "bois": <!-- Dans le cas ou le bois est choisi -->
MontrantAvantRabais1=10000;
MontrantAvantRabais3=15000;
MontrantAvantRabais3=20000;
multiplicateur_piedsCarres=7;
multiplicateur_montant1=0.95;
multiplicateur_montant1=0.93;
multiplicateur_montant1=0.92;
break;
case "brique ":
MontrantAvantRabais1=12000;
MontrantAvantRabais2=17000;
MontrantAvantRabais3=22000;
multiplicateur_piedsCarres=9;
multiplicateur_montant1=0.95;
multiplicateur_montant1=0.93;
multiplicateur_montant1=0.92;
break;
default: // SI Pierre
MontrantAvantRabais1=15000;
MontrantAvantRabais2=20000;
MontrantAvantRabais3=25000;
multiplicateur_piedsCarres=12;
multiplicateur_montant1=0.94;
multiplicateur_montant1=0.92;
multiplicateur_montant1=0.90;
break;
}

// Calcul du prix :
prixavantrabais = PeidCarre * multiplicateur_piedsCarres;
switch (true) {
case prixavantrabais <= MontrantAvantRabais1:
montant = prixavantrabais;
break;
case prixavantrabais <=MontrantAvantRabais2:
montant = prixavantrabais * multiplicateur_montant1;
break;
case prixavantrabais <=MontrantAvantRabais3:
montant = prixavantrabais * multiplicateur_montant2;
break;
default:
montant = prixavantrabais * multiplicateur_montant3;
break;
}

return montant;
}


function taxes(frm)
{
return parseInt(montant) + (parseInt(montant)*0.05) + (ParseInt(montant)+0.09975)
}}
</script>

<form name="soumission" action="" method="post" onsubmit="return valider(this)">


<table width="30%" border="0">
<tr>
<td width="43%" valign="top"><label for="txtprenomnom" id="lblprenom" class="normal">Prénom : </label></td>
<td width="57%" valign="top"><input type="text" class="textnormal" name="txtprenom" id="txtprenom" /></td>
</tr>
<tr>
<td valign="top"><label for="txtnom" class="normal" id="lblnom">Nom :</label></td>
<td valign="top"><input type="text" name="txtnom" class="textnormal" id="txtnom" /></td>
</tr>
<tr>
<td valign="top"><label for="txttel" class="normal" id="lbltel">Téléphone :</label></td>
<td valign="top"><input type="tel" name="txttel" class="textnormal" id="txttel" /></td>
</tr>
<tr>
<tr>
<td valign="top"><label for="txtadresse" class="normal" id="lbladresse">Adresse :</label></td>
<td valign="top"><input type="text" name="txtadresse" class="textnormal" id="txtadresse" /></td>
</tr>
<tr>
<td valign="top"><label for="txtcodepostal" class="normal" id="lblcodepostal">Code Postal :</label></td>
<td valign="top"><input type="text" name="txtcodepostal" class="textnormal" id="txtcodepostal" /></td>
</tr>
<tr>
<td valign="top"><label for="txtpiedsCarres" class="normal" id="lblpeidsCarres">Pieds carrés :</label></td>
<td valign="top"><input type="text" name="txtpeidsCarres" class="textnormal" id="txtpiedsCarres" /></td>
</tr>

</tr>

</table>
<div id="resultat"></div>
Entrez votre choix de matériel :
<SELECT NAME="list">
<OPTION VALUE="1">Bois
<OPTION VALUE="2">Brique
<OPTION VALUE="3">Pierre
</SELECT>
<tr>
<td colspan="2" align="center"><input type="submit" name="cmdenvoyer" id="cmdenvoyer" value="Envoyer" /></td>
</tr>
</form>


</body>


Est-ce que je me rapproche enfin de la solution?? XD
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
17 déc. 2013 à 17:42
Oula.... tu ne te relis pas assez je pense...

if (txt.prenom.value ==""){ message = message + "Veuillez entrer votre prénom! <br>"; document.getElementById("txtprenom"); }


- Qu'est ce que c'est cette variable txt que tu initilise nul part ?
- A quoi te sert la ligne "document.getElementById("txtprenom");" ... tu ne lui affecte aucune valeur...tu ne la stocke dans aucune variable...
bref..elle ne te sert à rien!!

A la rigueur, tu peux écrire :

if (document.getElementById("txtprenom").value ==""){ message = message + "Veuillez entrer votre prénom! <br>"; }


Idem pour le reste de ton code...




0
Kanerian Messages postés 13 Date d'inscription mardi 17 décembre 2013 Statut Membre Dernière intervention 18 décembre 2013
17 déc. 2013 à 22:18
Bon...

J'ai encore changé un peu avec ce que tu m'as dis.

<body>

<script>

var prenom= frm.txtprenom.value;
var nom= frm.txtnom.value;
var telephone= frm.txttel.value;
var adresse= frm.txtadresse.value;
var materiel= frm.list.value;
var codepostal=frm.txt.codepostal.value;
var message

var piedscarres=txt.piedscarres.value;
var montantsoustotal;
var montanttaxe;

function valider(frm){
/*Caractère prenom, nom, telephone, adresse, materiel, codepostal, message
Réel piedscarres, montantsoustotal, montanttaxes*/


message = "";

if (document.getElementById("txtprenom").value ==""){
message = message + "Veuillez entrer votre prénom! <br>";
document.getElementById("txtprenom").value;
}

if (document.getElementById("txtnom").value ==""){
message = message + "Veuillez entrer votre nom! <br>";
document.getElementById("txtnom");
}

if (document.getElementById("txttel").value ==""){
message = message + "Veuillez entrer un numéro de téléphone valide! <br>";
document.getElementById("txttel");
}

if (document.getElementById("txtadresse").value ==""){
message = message + "Veuillez entrer votre adresse! <br>";
document.getElementById("txtadresse");
}

if (document.getElementById("txtcodepostal").value ==""){
message = message + "Veuillez entrer votre code postal! <br>";
document.getElementById("txtcodepostal");
}
if (document.getElementById("txtresultat").value ==""){
message = message + "Veuillez entrer un choix de matériel! <br>";
document.getElementById("resultat");
}


if (document.getElementById("txtpiedscarres").value ==""){
message = message + "Veuillez entrer le nombre de pieds carrés que vous désirez recouvrir! <br>";
document.getElementById("txtpiedscarres");
}

if (message == ""){
montantsoustotal = soustotal (materiel, piedscarres);
montanttaxes= taxes (montantsoustotal);
window.prompt("Merci de nous faire confiance. Notre estimation pour vos besoin est de" +montantsoustotal + " $+ montanttaxes ( "+ montanttaxes+"$)", "");
}
else {
document.getElementById("message")
}



function valider(frm)
{
var retour;
if (frm == "") {
return false;
}
else {
return true;
}
return retour
}

var regexObj = /^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/;

if (regexObj.test(subjectString)) {
var txttel =
subjectString.replace(regexObj, "($1) $2-$3");
} else {
return true;
}


function CodePostalValide(frm) {
entry=document.getElementById("txtcodepostal").value;
strlen=entry.length;
if(strlen!==6) {
return false;
}
// au cas où il a été entré en minuscules
entry=entry.toUpperCase();

// valeurs permises
s1='ABCEGHJKLMNPRSTVXY';
s2=s1+'WZ';
d3='0123456789';

// compare, une par une, les valeurs entrées à celles permises
if(s1.indexOf(entry.charAt(0))<0){
return false;
}
if(d3.indexOf(entry.charAt(1))<0){
return false;
}
if(s2.indexOf(entry.charAt(2))<0){
return false;
}
if(d3.indexOf(entry.charAt(3))<0){
return false;
}
if(s2.indexOf(entry.charAt(4))<0){
return false;
}
if(d3.indexOf(entry.charAt(5))<0){
return false;
}

// le code postal est valide !
return true;
}

function sousTotal( materiel,PeidsCarre){
var prixavantrabais ;
var montant;
var MontrantAvantRabais1;
var MontrantAvantRabais2;
var MontrantAvantRabais3;
var multiplicateur_piedsCarres ;
var multiplicateur_montant1;
var multiplicateur_montant2;
var multiplicateur_montant3;

// Initialisation des variables en fonction du matériel...
switch (materiel) {
case "bois": <!-- Dans le cas ou le bois est choisi -->
MontrantAvantRabais1=10000;
MontrantAvantRabais3=15000;
MontrantAvantRabais3=20000;
multiplicateur_piedsCarres=7;
multiplicateur_montant1=0.95;
multiplicateur_montant1=0.93;
multiplicateur_montant1=0.92;
break;
case "brique ":
MontrantAvantRabais1=12000;
MontrantAvantRabais2=17000;
MontrantAvantRabais3=22000;
multiplicateur_piedsCarres=9;
multiplicateur_montant1=0.95;
multiplicateur_montant1=0.93;
multiplicateur_montant1=0.92;
break;
default: // SI Pierre
MontrantAvantRabais1=15000;
MontrantAvantRabais2=20000;
MontrantAvantRabais3=25000;
multiplicateur_piedsCarres=12;
multiplicateur_montant1=0.94;
multiplicateur_montant1=0.92;
multiplicateur_montant1=0.90;
break;
}

// Calcul du prix :
prixavantrabais = PeidCarre * multiplicateur_piedsCarres;
switch (true) {
case prixavantrabais <= MontrantAvantRabais1:
montant = prixavantrabais;
break;
case prixavantrabais <=MontrantAvantRabais2:
montant = prixavantrabais * multiplicateur_montant1;
break;
case prixavantrabais <=MontrantAvantRabais3:
montant = prixavantrabais * multiplicateur_montant2;
break;
default:
montant = prixavantrabais * multiplicateur_montant3;
break;
}

return montant;
}


function taxes(frm)
{
return parseInt(montant) + (parseInt(montant)*0.05) + (parseInt(montant)+0.09975)
}}
</script>

<form name="soumission" action="" method="post" onsubmit="return valider(this)">


<table width="30%" border="0">
<tr>
<td width="43%" valign="top"><label for="txtprenomnom" id="lblprenom" class="normal">Prénom : </label></td>
<td width="57%" valign="top"><input type="text" class="textnormal" name="txtprenom" id="txtprenom" /></td>
</tr>
<tr>
<td valign="top"><label for="txtnom" class="normal" id="lblnom">Nom :</label></td>
<td valign="top"><input type="text" name="txtnom" class="textnormal" id="txtnom" /></td>
</tr>
<tr>
<td valign="top"><label for="txttel" class="normal" id="lbltel">Téléphone :</label></td>
<td valign="top"><input type="tel" name="txttel" class="textnormal" id="txttel" /></td>
</tr>
<tr>
<tr>
<td valign="top"><label for="txtadresse" class="normal" id="lbladresse">Adresse :</label></td>
<td valign="top"><input type="text" name="txtadresse" class="textnormal" id="txtadresse" /></td>
</tr>
<tr>
<td valign="top"><label for="txtcodepostal" class="normal" id="lblcodepostal">Code Postal :</label></td>
<td valign="top"><input type="text" name="txtcodepostal" class="textnormal" id="txtcodepostal" /></td>
</tr>
<tr>
<td valign="top"><label for="txtpiedsCarres" class="normal" id="lblpiedsCarres">Pieds carrés :</label></td>
<td valign="top"><input type="text" name="txtpiedsCarres" class="textnormal" id="txtpiedsCarres" /></td>
</tr>

</tr>

</table>
<div id="resultat"></div>
Entrez votre choix de matériel :
<SELECT NAME="list">
<OPTION VALUE="1">Bois
<OPTION VALUE="2">Brique
<OPTION VALUE="3">Pierre
</SELECT>
<tr>
<td colspan="2" align="center"><input type="submit" name="cmdenvoyer" id="cmdenvoyer" value="Envoyer" /></td>
</tr>
</form>


</body>
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
Modifié par jordane45 le 17/12/2013 à 23:58
Tu as plein d'erreur sur ton code...
En vrac ....

pour la balise script : <script type="text/javascript">

Tu passes par un FORM Submit ( en POST) ... hors ce qui t'interesse ce n'est pas d'envoyer des données à du PHP mais de les traiter en javascript;..
DOnc pout ton Bouton , utilises plutot du ONCLICK.

Tu as deux fonctions de même nom : VALIDER ...


Tu initialises des variables inutilisées au début de ton code

Tu as oublié des ";" à certaines lignes...


EDIT : Il semble égalemet qu'il te manque des "}" à la fin de tes fonctions...
Bref, commence par corriger tout ça.
0
Kanerian Messages postés 13 Date d'inscription mardi 17 décembre 2013 Statut Membre Dernière intervention 18 décembre 2013
18 déc. 2013 à 04:06
Ah bha moi on m'a appris à marquer uniquement <script> en début et en fin de mon script javascript. On m'a aussi appris avec le bouton et non pas du Onclick. Je vais regarder encore et encore alors.
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
18 déc. 2013 à 08:25
Le plus important dans ce que je t'ai indiqué avant c'est plutot les erreurs de syntaxe ( les ";" et les "}" ) ainsi que les fonctions qui portent deux fois le même nom ....
0
Kanerian Messages postés 13 Date d'inscription mardi 17 décembre 2013 Statut Membre Dernière intervention 18 décembre 2013
18 déc. 2013 à 18:54
Bon.... C'est compliquer, mais j'ai avancé. C'est mieux je penses, même si je sais que j'ai plein d'erreurs puisque sa ne fonctionne pas...


LE HTLM
 <form id="form">
Votre Prénom: <input type="text" id="txtprenom" value="" >
<input type="button" Value="Valider" onclick="test()">
<p id="Msg"></p>
<br>

Votre Nom: <input type="text" id="nom" value="" >
<input type="button" Value="Valider" onclick="test()">
<p id="Msg"></p>
<br>
Votre Numéro de téléphone: <input type="text" id="txttel" value="" >
<input type="button" Value="Valider" onclick="test()">
<p id="Msg"></p>
<br>
Votre Adresse: <input type="text" id="txtadresse" value="" >
<input type="button" Value="Valider" onclick="test()">
<p id="Msg"></p>
<br>
Votre Code postal: <input type="text" id="txtcodepostal" value="" >
<input type="button" Value="Valider" onclick="test()">
<p id="Msg"></p>
<br>
Pieds carrés: <input type="text" id="txtpiedscarres" value="" >
<input type="button" Value="Valider" onclick="test()">
<p id="Msg"></p>
<br>
Entrez votre choix de matériel :
<SELECT NAME="listMateriel" id="listMateriel">
<OPTION VALUE="Bois">Bois </OPTION>
<OPTION VALUE="Brique">Brique </OPTION>
<OPTION VALUE="Pierre">Pierre </OPTION>
</SELECT>

<br>
<br>
<input type="button"
id="valider"
value="GO!"
onclick="Mafonction();"
>
<br>
<div id="resultat">





Le JAVASCRIPT


<script>

function test1(){
if (document.getElementById("txtprenom").value == ""){
document.getElementById("Msg").innerHTML = "Veuillez entrer votre prénom";

}else{
window.confirm("Merci de nous faire confiance. Notre estimation pour vos besoins est de " + document.getElementById("txttaxes").value );
}
}

function test2()

{
if (document.getElementById("txtnom").value == ""){
document.getElementById("Msg").innerHTML = "Veuillez entrer votre nom";

}else{
window.confirm("Merci de nous faire confiance. Notre estimation pour vos besoins est de " + document.getElementById("txttaxes").value );
}
}
function test3()
{
if (document.getElementById("txttel").value == ""){
document.getElementById("Msg").innerHTML = "Veuillez entrer votre numéro de téléphone";

}else{
window.confirm("Merci de nous faire confiance. Notre estimation pour vos besoins est de " + document.getElementById("txttaxes").value );
}
}
{
if (document.getElementById("txtcodepostal").value == ""){
document.getElementById("Msg").innerHTML = "Veuillez entrer votre code postal";

}else{
window.confirm("Merci de nous faire confiance. Notre estimation pour vos besoins est de " + document.getElementById("txttaxes").value );
}
}

{
if (document.getElementById("txtmat").value == ""){
document.getElementById("Msg").innerHTML = "Veuillez choisir un matériel";

}else{
window.confirm("Merci de nous faire confiance. Notre estimation pour vos besoins est de " + document.getElementById("txttaxes").value );
}
}

{
if (document.getElementById("txtpiedscarres").value == ""){
document.getElementById("Msg").innerHTML = "Veuillez entrer le nombre de pieds carrés que vous voulez couvrir";

}else{
window.confirm("Merci de nous faire confiance. Notre estimation pour vos besoins est de " + document.getElementById("txttaxes").value );
}
}




function Mafonction(){
// -> Recupération des variables :
var Choixmateriel = document.getElementById('listMateriel').value;
var MontantPeidsCarre = document.getElementById('piedscarres').value;
// -> SousTotal
var SousTot = sousTotal( Choixmateriel,MontantPeidsCarre);
//alert(SousTot);
// -> Affichage dans le DIV
MaDiv = document.getElementById('resultat');
MaDiv.innerHTML = "Le resultat est :<b>" + SousTot + " </b>";

}

function checkPhone () {
reg = /^[0-9]\d{2}-\d{3}-\d{4}$/;
if(!reg.test(txttel))
{
return false;
}
else
{
return true;
}
}


function CodePostalValide() {
entry=document.getElementById("txtcodepostal").value;
strlen=entry.length;
if(strlen!==6) {
return false;
}
// au cas où il a été entré en minuscules
entry=entry.toUpperCase();

// valeurs permises
s1='ABCEGHJKLMNPRSTVXY';
s2=s1+'WZ';
d3='0123456789';

// compare, une par une, les valeurs entrées à celles permises
if(s1.indexOf(entry.charAt(0))<0){
return false;
}
if(d3.indexOf(entry.charAt(1))<0){
return false;
}
if(s2.indexOf(entry.charAt(2))<0){
return false;
}
if(d3.indexOf(entry.charAt(3))<0){
return false;
}
if(s2.indexOf(entry.charAt(4))<0){
return false;
}
if(d3.indexOf(entry.charAt(5))<0){
return false;
}

// le code postal est valide !
return true;
}

function sousTotal( materiel,piedscarres){
var prixavantrabais ;
var montant;
var MontrantAvantRabais1;
var MontrantAvantRabais2;
var MontrantAvantRabais3;
var multiplicateur_piedscarres ;
var multiplicateur_montant1;
var multiplicateur_montant2;
var multiplicateur_montant3;

// Initialisation des variables en fonction du matériel...
switch (materiel) {
case "bois": <!-- Dans le cas ou le bois est choisi -->
MontrantAvantRabais1=10000;
MontrantAvantRabais3=15000;
MontrantAvantRabais3=20000;
multiplicateur_piedscarres=7;
multiplicateur_montant1=0.95;
multiplicateur_montant2=0.93;
multiplicateur_montant3=0.92;
break;
case "brique ":
MontrantAvantRabais1=12000;
MontrantAvantRabais2=17000;
MontrantAvantRabais3=22000;
multiplicateur_piedscarres=9;
multiplicateur_montant1=0.95;
multiplicateur_montant2=0.93;
multiplicateur_montant3=0.92;
break;
default: // SI Pierre
MontrantAvantRabais1=15000;
MontrantAvantRabais2=20000;
MontrantAvantRabais3=25000;
multiplicateur_piedscarres=12;
multiplicateur_montant1=0.94;
multiplicateur_montant2=0.92;
multiplicateur_montant3=0.90;
break;
}

// Calcul du prix :
prixavantrabais = piedscarre * multiplicateur_piedscarres;
switch (true) {
case prixavantrabais <= MontrantAvantRabais1:
montant = prixavantrabais;
break;
case prixavantrabais <=MontrantAvantRabais2:
montant = prixavantrabais * multiplicateur_montant1;
break;
case prixavantrabais <=MontrantAvantRabais3:
montant = prixavantrabais * multiplicateur_montant2;
break;
default:
montant = prixavantrabais * multiplicateur_montant3;
break;
}

return montant;
}

function taxes()
{
return parseInt(montant) + (parseInt(montant)*0.05) + (parseInt(montant)+0.09975)
}
</script>



Des idées d'où sont mes erreurs et comment les corriger?? (Encore je sais...)
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
Modifié par jordane45 le 18/12/2013 à 19:14
Est-ce que tu as installé FIREBUG (sous FireFox ) ?
Ou.. utilises-tu le debogueur d'Internet Explorer ?


Ces outils te permettraient de voir un très grand nombre d'erreurs.....


Là tout de suite.. je peux déjà te dire que tu fais appel à des fonctions test1, test2 ... mais que tu n'as qu'UNE fonction TEST()...


Ensuite;.. tu nomme un de tes INPUT : id="txtpiedscarres"
hors... lorsque tu essaies, dans le javascript, de récupérer son contenu tu utilises..var MontantPeidsCarre = document.getElementById('piedscarres').value;..... a ton avis... vu que tu n'utilises pas le même nom..ça peut marcher ??

Bref,
- Installe les logiciels dont je viens de te parler.
- Relis ton code !
- Lorsque tu développe;.. Teste chaque fonction séparement avant de tout mettre ensemble...


Il y a trop d'incohérences et d'erreurs dans ton code actuel;. je n'ai pas le temps de tout de corriger (et je ne suis pas là pour ça;.)..
Courage...^^.
0
Rejoignez-nous