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 :

vérification de formulaire


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 19
    Points : 17
    Points
    17
    Par défaut vérification de formulaire
    Bonjour,

    dans le cadre d'une vérification de formulaire je dois crée une fonction javascript qui permet de vérifié si deux champs d'une même ligne sont bien remplis et qu'ils ne contiennent que des chiffres.

    Voila ce que cela donne:
    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
    function verifline(max){
    	var error = 0;
    	var msg_error = "";
    	var num_champ = 0;
    	for(num_champ = 0; num_champ < max; num_champ++){
    		if(document.getElementById('numDevis_'+num_champ).value !== "" || document.getElementById('montantDevis_'+num_champ).value !== ""){
    			if(document.getElementById('numDevis_'+num_champ).value === ""){
    				msg_error += "Champ N° Devis Manquant ligne " + (num_champ+1) + " \n";
    				error = 1;
    			}
    			if(document.getElementById('montantDevis_'+num_champ).value === ""){
    				msg_error += "Champ Montant Devis Manquant ligne " + (num_champ+1) + " \n";
    				error = 1;
    			}
    		}
    		if(document.getElementById('numDevis_'+num_champ).value !== "" && !isNan(document.getElementById('numDevis_'+num_champ).value)){
    			msg_error += "Champ N°Devis ligne " + (num_champ+1) + " ne peut contenir que des chiffres\n";
    			error = 1;
    		}
    		if(document.getElementById('montantDevis_'+num_champ).value !== "" && !isNan(document.getElementById('montantDevis_'+num_champ).value)){
    			msg_error +=  "Champ Montant Devis ligne " + (num_champ+1) + " ne peut contenir que des chiffres\n";
    			error = 1;	
    		}
    	}
    	if(error === 0){
    		return true;
    	}
    	else{
    		alert(msg_error);
    		return false;
    	}
    }
    Malheureusement je n'arrive pas a faire fonctionné cette fonction il y a un problème entre les lignes 17 et 24 (sans celle-ci cela fonctionne), et je n'arrive pas a trouver d'ou vient l'erreur.

    Si vous avez la solution ou des pistes menant a celle ci je suis preneur !

    Merci d'avance.

  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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    le html associé ressemble à quoi ?

    quel est le message d'erreur ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    Voici la partie HTML correspondante (je mets juste les 3 lignes qui nous intéresse).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <TD><input type="text" size="14" name="numDevis_<%=j %>" id="numDevis_<%=j %>"></TD>
    <TD><input type="text" size="10" name="montantDevis_<%=j %>" id="montantDevis_<%=j %>"></TD>
    <input name="SUBMIT_MAJDEVIS" type="submit" OnClick="return verifline(<%=listdevis.size() %>)" value="Enregistrer" ><p>
    Pour le message d'erreur, sans les lignes 17 a 23 la fonction marche et empêche le post de partir, si l'un des deux champs n'est pas renseigné en affichant le message d'erreur correspondant.

    Avec ses lignes rien ne se passe et le post part tous le temps.

  4. #4
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    le html généré eut été de meilleur aloi ...

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    <form name="validcontrolForm" action="/jProductBaseWeb/DevisPrealable" method="post">
     
    	<input name="SUBMIT_MAJDEVIS" type="submit" OnClick="return verifline(3)" value="Enregistrer" ><p>
     
    	<TABLE>
     
    		<TR>
     
    			<TH width="4%">Type</TH>
     
    			<TH width="15%">Ref LA</TH>
     
    			<TH width="15%">Ref Client</TH>
     
    			<TH width="8%">Date-Code</TH>
     
    			<TH width="8%">N° Série</TH>
     
    			<TH>Pré-analyse</TH>
     
    			<TH>N° Devis</TH>
     
    			<TH>Montant</TH>
     
    			<TH>Date Devis</TH>
     
    			<TH>Commentaire</TH>
     
    		</TR>
     
    		<TR>
     
    			<TD><input type="hidden" name="idaftersale_0" value="Type_0" />DIVMECA</TD>
     
    			<TD><input type="hidden" name="refLA_0" value="Type_0"/>DIVMECA</TD>
     
    			<TD><input type="hidden" name="refClient_0" />Reference Client 1</TD>
     
    			<TD><input type="hidden" name="dateCode_0" value="Type_0" /></TD>
     
    			<TD><input type="hidden" name="serialNumber_0" value="Type_0" /></TD>
     
    			<TD><input type="hidden" name="datePre_0" value="Type_0" />11/11/2011</TD>
     
    			<TD><input type="text" size="14" name="numDevis_0" id="numDevis_0"></TD>
     
    			<TD><input type="text" size="10" name="montantDevis_0" id="montantDevis_0"></TD>
     
    			<TD><input type="text" size="10" name="dateDevis_0" value="30/05/2012" readonly="readonly" class="mCalendar" style="text-align:center;"/></TD>
     
    			<TD><input type="text" size="24" name="commentaireDevis_0"></TD>
     
    		</TR>
     
    		<TR>
     
    			<TD><input type="hidden" name="idaftersale_1" value="Type_1" />FCIE500302</TD>
     
    			<TD><input type="hidden" name="refLA_1" value="Type_1"/>FCIE500302 - B</TD>
     
    			<TD><input type="hidden" name="refClient_1" />Reference Client 2</TD>
     
    			<TD><input type="hidden" name="dateCode_1" value="Type_1" />1149</TD>
     
    			<TD><input type="hidden" name="serialNumber_1" value="Type_1" />1974</TD>
     
    			<TD><input type="hidden" name="datePre_1" value="Type_1" />11/11/2011</TD>
     
    			<TD><input type="text" size="14" name="numDevis_1" id="numDevis_1"></TD>
     
    			<TD><input type="text" size="10" name="montantDevis_1" id="montantDevis_1"></TD>
     
    			<TD><input type="text" size="10" name="dateDevis_1" value="30/05/2012" readonly="readonly" class="mCalendar" style="text-align:center;"/></TD>
     
    			<TD><input type="text" size="24" name="commentaireDevis_1"></TD>
     
    		</TR>
     
    		<TR>
     
    			<TD><input type="hidden" name="idaftersale_2" value="Type_2" />DIVCAB</TD>
     
    			<TD><input type="hidden" name="refLA_2" value="Type_2"/>DIVCAB</TD>
     
    			<TD><input type="hidden" name="refClient_2" />Reference Client 3</TD>
     
    			<TD><input type="hidden" name="dateCode_2" value="Type_2" /></TD>
     
    			<TD><input type="hidden" name="serialNumber_2" value="Type_2" /></TD>
     
    			<TD><input type="hidden" name="datePre_2" value="Type_2" />11/11/2011</TD>
     
    			<TD><input type="text" size="14" name="numDevis_2" id="numDevis_2"></TD>
     
    			<TD><input type="text" size="10" name="montantDevis_2" id="montantDevis_2"></TD>
     
    			<TD><input type="text" size="10" name="dateDevis_2" value="30/05/2012" readonly="readonly" class="mCalendar" style="text-align:center;"/></TD>
     
    			<TD><input type="text" size="24" name="commentaireDevis_2"></TD>
     
    		</TR>
     
    	</TABLE>
     
    </form>

  6. #6
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     OnClick="return verifline(<%=listdevis.size() %>)"
    met plutot ça dans le onsubmit du form
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     <form name="validcontrolForm" action="/jProductBaseWeb/DevisPrealable" method="post" onsubmit="return verifline(<%=listdevis.size() %>)"

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    Fait, malheureusement rien ne change sans les lignes 17 a 24 tous marche avec plus rien ne fonctionne :/

  8. #8
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    msg_error += "Champ N°Devis ligne " + (num_champ+1) + " ne peut contenir que des chiffres\n";
    			error = 1;
    		}
    		if(document.getElementById('montantDevis_'+num_champ).value !== "" && !isNan(document.getElementById('montantDevis_'+num_champ).value)){
    			msg_error +=  "Champ Montant Devis ligne " + (num_champ+1) + " ne peut contenir que des chiffres\n";
    			error = 1;	
    		}
    	}
    17 à 24 ??? si tu supprimes ça, ça fonctionne ????
    ce serait très étonnant ...

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    Mes excuses de 16 a 23 dans le premier post soit la partie suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    		if(document.getElementById('numDevis_'+num_champ).value !== "" && !isNan(document.getElementById('numDevis_'+num_champ).value)){
    			msg_error += "Champ N°Devis ligne " + (num_champ+1) + " ne peut contenir que des chiffres\n";
    			error = 1;
    		}
    		if(document.getElementById('montantDevis_'+num_champ).value !== "" && !isNan(document.getElementById('montantDevis_'+num_champ).value)){
    			msg_error +=  "Champ Montant Devis ligne " + (num_champ+1) + " ne peut contenir que des chiffres\n";
    			error = 1;	
    		}
    De 17 a 24 dans mon fichier .js

  10. #10
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    et tu as quel message d'erreur dans la console de firebug ?

  11. #11
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    Aucun... Comme si il ne passer plus dans la fonction une fois les lignes ajouter...

    Je tourne en rond et je ne comprend vraiment pas d'ou viens le problème.

  12. #12
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    mets des alert aux différentes étapes ...
    tu t’emmêles les crayon dans tes tests ...

  13. #13
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    Pour moi ce code et logique et c d'autant plus dur de trouver d'ou vient l'erreur.

    J'ai mis des alerts et voici ce que cela donne:

    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
    		function verifline(max){
    		var error = 0;
    		var msg_error = "";
    		var num_champ = 0;
    		for(num_champ = 0; num_champ < max; num_champ++){
    			if(document.getElementById('numDevis_'+num_champ).value !== "" || document.getElementById('montantDevis_'+num_champ).value !== ""){
    				if(document.getElementById('numDevis_'+num_champ).value === ""){
    					msg_error += "Champ N° Devis Manquant ligne " + (num_champ+1) + " \n";
    					error = 1;
    					alert("1 " +error);
    				}
    				if(document.getElementById('montantDevis_'+num_champ).value === ""){
    					msg_error += "Champ Montant Devis Manquant ligne " + (num_champ+1) + " \n";
    					error = 1;
    					alert("2 " +error);
    				}
    				alert("sorti");
    			}
    			if(document.getElementById('numDevis_'+num_champ).value !== "" && !isNan(document.getElementById('numDevis_'+num_champ).value)){
    				msg_error += "Champ N°Devis ligne " + (num_champ+1) + " ne peut contenir que des chiffres\n";
    				error = 1;
    				alert("3 " +error);
    			}
    			if(document.getElementById('montantDevis_'+num_champ).value !== "" && !isNan(document.getElementById('montantDevis_'+num_champ).value)){
    				msg_error +=  "Champ Montant Devis ligne " + (num_champ+1) + " ne peut contenir que des chiffres\n";
    				error = 1;	
    				alert("4 " +error);
    			}
    			alert("sorti 2 " + error);
    		}
    		alert("5 " +error);
    		if(error === 0){
    			return true;
    		}
    		if(error === 1){
    			alert(msg_error);
    			return false;
    		}
    	}
    Quand le formulaire et vide il affiche l'alerte sorti 2 et 5 (ligne 29 et 31) logique.

    Quand je rempli correctement les deux champs il affiche juste sorti.

    Quand je rempli un seul des deux champs il affiche 1 ou 2 ligne 10 ou 15 (logique) et sorti ligne 17 puis plus rien même pas le alert 5 qui et en fin de script.

    Pourquoi le script s’arrête comme ca ? Je n'arrive pas a comprend on dirais qu'il rencontre une erreur et qu'il "zap" la fin du code.

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

Discussions similaires

  1. Vérification de formulaire avec regexp
    Par Shadow aok dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 06/08/2007, 11h57
  2. vérification de formulaire
    Par manciaux dans le forum Langage
    Réponses: 23
    Dernier message: 01/09/2006, 16h20
  3. Vérification de formulaire :/
    Par Michaël dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 22/02/2006, 18h47
  4. Réponses: 5
    Dernier message: 12/07/2005, 17h04
  5. JavaScript de vérification de formulaire
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 6
    Dernier message: 26/02/2003, 13h48

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