Bonjour � tous,
Voil� mon probl�me.
J'ai la structure de suivante :
Mon soucis est le suivant :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <script type="text/javascript"> <!-- code js //--> </script> <form class="formulaire_resa" name="reservation" id="reservation" METHOD='POST' ACTION="<? echo 'Reservation.php' ; ?> " onsubmit="return ValidationSaisie()"> code php/html pour le formulaire </form>
Mon formulaire est constitu� d'un tableau dont le nombre de lignes est variable et donc par cons�quent le nombre de champs � v�rifier.
Pour simplifier disons que ce tableau a 3 colonnes : date, montant et compte_bancaire.
les champs dates et montant sont mat�rialis�s par un champ texte, et les champs relatifs au compte_bancaire par une liste d�roulante.
Je dois v�rifier que :
La somme des montants (A) est �gal � un montant B.
Les champs compte_bancaire ne peuvent pas avoir la valeur select c'est � dire la valeur 0.
Je ne vois pas comment impl�menter ma fonction ValidationSaisie() sachant que :
j'ai d�j� une fonction verifRepartitionEC() qui v�rifie que la somme de mes montant (A) est bien �gal � un un montant B . Si non, elle met en rouge le monant B. Cette fonction parcoure le tableau d'o� l'utilisation d'une boucle.
Par ailleurs voici ma fonction ValidationSaisie()
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 function verifRepartitionEC(){ var somme_echeance_client =0; for (k=1; k< nbLignesEcheanceClient+1; k++) { var temp1=document.getElementById("montant_ec"+k).value; temp1 = temp1.deformatage_nombre(); if(!isNaN(temp1) && (temp1!="")) somme_echeance_client = somme_echeance_client + parseFloat(temp1); } if (somme_echeance_client != montant_total) { document.getElementById("Total_Echeance_Client").className='total_input_erreur_rouge'; return false; } else { document.getElementById("Total_Echeance_Client").className='total_input_bleufonce'; return true; } }
Si cette fonction se r�sume � :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 function ValidationSaisie() { frm=document.forms['reservation']; //verifRepartitionEC(); for (k=1; k< nbLignesEcheanceClient+1; k++) { var valeur_compte=document.getElementById("compte_bancaire_paiement_client"+k); if (valeur_compte.value =='0') { //frm.elements['devise_locale'].style.backgroundColor='#FFCC66'; return false; exit; } else { return true; } } }
Tout baigne. Si ma somme A est diff�rente de mon montant B, le formulaire n'est pas valid�.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6 function ValidationSaisie() { return verifRepartitionEC(); }
Maintenant si je souhaite valider que tous mes champs compte bancaires sont renseign�s avec le code suivant :
cela ne fonctionne pas. Pour que le formulaire ne soit pas valider il faut que le premier champ soit sur select (valeur = 0)
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 function ValidationSaisie() { for (k=1; k< nbLignesEcheanceClient+1; k++) { var valeur_compte=document.getElementById("compte_bancaire_paiement_client"+k); if (valeur_compte.value =='0') { return false; } else { return true; } } }
j'ai trouv� une solution mais elle ne me convient pas.
Pourquoi ?
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 function ValidationSaisie() { var somme_erreur =''; // Validation total écheance var somme_echeance_client =0; for (k=1; k< nbLignesEcheanceClient+1; k++) { var temp1=document.getElementById("montant_ec"+k).value; temp1 = temp1.deformatage_nombre(); if(!isNaN(temp1) && (temp1!="")) somme_echeance_client = somme_echeance_client + parseFloat(temp1); } if (somme_echeance_client != montant_total) { somme_erreur ='divergence_echeance'; } // Validation de saise des comptes bancaires for (k=1; k< nbLignesEcheanceClient+1; k++) { var valeur_compte=document.getElementById("compte_bancaire_paiement_client"+k); if (valeur_compte.value =='0') { //frm.elements['devise_locale'].style.backgroundColor='#FFCC66'; somme_erreur = somme_erreur + 'erreur'; } } if (somme_erreur != '') { return false } }
Cette fonction reprend une partie de code d�j� existant par ailleurs.
En esp�rant d'abord avoir exprimer correctement cette probl�matique, votre aide me sera pr�cieuse.
par avance merci
Partager