IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

validation de formulaire - structure de code avec return


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de tavarlindar
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 262
    Par défaut validation de formulaire - structure de code avec return
    Bonjour à tous,

    Voilà mon problème.
    J'ai la structure de suivante :

    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 soucis est le suivant :
    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.


    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;
    		}	
    }
    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
    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;
    			}
     
    		}
     
    }
    Si cette fonction se résume à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function ValidationSaisie() {
     
    	 return verifRepartitionEC();
     
    }
    Tout baigne. Si ma somme A est différente de mon montant B, le formulaire n'est pas validé.

    Maintenant si je souhaite valider que tous mes champs compte bancaires sont renseignés avec le code 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
    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;
    			}
     
    		}
     
    }
    cela ne fonctionne pas. Pour que le formulaire ne soit pas valider il faut que le premier champ soit sur select (valeur = 0)



    j'ai trouvé une solution mais elle ne me convient pas.

    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
    	}	
     
    }
    Pourquoi ?

    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

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Tu peux essayer de grouper les deux fonctions en une seule ou bien plus simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onsubmit="return (fonctionVerfi1() && fonctionverif2())"
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre éclairé Avatar de tavarlindar
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 262
    Par défaut
    merci pour ton astuce.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/06/2007, 22h26
  2. Réponses: 1
    Dernier message: 15/05/2006, 18h05
  3. pbl de code avec formulaire
    Par nedime dans le forum Langage
    Réponses: 6
    Dernier message: 06/02/2006, 15h12
  4. Validation de formulaire recherche avec fonction javascript
    Par Cdic dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 19/01/2006, 10h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo