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 :

Contrôle de saisie de formulaire


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 584
    Points : 809
    Points
    809
    Par défaut Contrôle de saisie de formulaire
    Bonjour,

    Dans le code suivant, l'absence de données est correctement détectée (lignes 15 et 20) mais lorsque je renseigne le champ vide les valeurs des variables ne sont pas lues et les fonctions alert() continuent de renvoyer 'undefined'.
    Code javascript : 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
    const	form1 		= document.getElementById('form1'),
    	date_accueil	= document.getElementById('date_accueil'),
    	typeOrigine	= document.getElementById('type_origine'),
    	nomOrigine	= document.getElementById('nom_origine'),
    	regexDate	= /[0-3][0-9].[0-1][0-9].(19|20)[0-9]{2}/;
     
    form1.addEventListener('submit', function(e) {
    	if (! regexDate.test(date_accueil.value)) {
    		alert("La date d'accueil doit être au format 'JJ/MM/AAAA'.\nUtilisez de préférence le calendrier.");
    		e.preventDefault();
    	}
    	alert(1 + typeOrigine.data);
    	alert(2 + typeof typeOrigine.data);
    	alert(3 + nomOrigine.data);
    	alert(4 + typeof nomOrigine.data);
    	if (typeof typeOrigine.data == 'undefined') {
    		//alert("Le type et le nom d'origine du contact sont obligatoires.");
    		//alert(typeOrigine.data);
    		//e.preventDefault();
    	}
    	if (typeof nomOrigine.data == 'undefined') {
    		//alert("Le type et le nom d'origine du contact sont obligatoires.");
    		//alert(typeOrigine.data);
    		//e.preventDefault();
    	}
    }, false);
    Le contrôle de regex quant à lui fonctionne correctement.

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 584
    Points : 809
    Points
    809
    Par défaut
    Je me réponds à moi-même. J'ai utilisé data ou lieu de value.

  3. #3
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    Salut, voici deux-trois conseils en vrac :

    Pour déboguer, utilise console.log au lieu de alert. Les messages s’afficheront dans la console (F12) au lieu d’une popup, ce sera non bloquant, ça rend le débogage plus agréable. Bien sûr, pour les messages destinés aux utilisatrices et utilisateurs, continue à employer alert, ou mieux : injecte les messages dans le HTML de la page. Tu pourras entre autres ajouter des indications sémantiques (par exemple l’attribut aria-invalid) pour améliorer l’accesibilité de ta page.

    Si tu es en mode strict, la valeur undefined ne peut pas être redéfinie, il n’y a donc aucun danger à l’utiliser pour les vérifications de « type ». Tu peux remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (typeof typeOrigine.data == 'undefined') {
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (typeOrigine.data === undefined) {
    en faisant attention à bien utiliser le triple égal === qui fait des comparaisons strictes (voir opérateurs de comparaison). C’est plus efficace, et personnellement je trouve que c’est plus lisible.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

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

Discussions similaires

  1. Réponses: 24
    Dernier message: 28/01/2011, 13h19
  2. Formulaire de contrôle de saisie
    Par Bernard67 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 28/02/2008, 17h39
  3. [Formulaire]Contrôle de saisie dans une zone de texte
    Par ludovicparis dans le forum IHM
    Réponses: 7
    Dernier message: 29/03/2007, 13h39
  4. Contrôle de saisie formulaire
    Par miram dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 02/02/2006, 08h33
  5. [debutant] contrôle de saisie et formulaire
    Par oceane751 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/11/2005, 22h29

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