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 :

Controle de saisie


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2014
    Messages : 3
    Par défaut Controle de saisie
    Bonsoir à tous
    J'ai fait un fonction verif en javascript qui controle si tous les champ du formulaire on été remplit si ce n'est pas le cas elle les souligne en rouge et retourne un boolean faux. Quand je teste sa fonctionne c'est a dire que les champ non remplit sont souligné en rouge par contre il envoit quand même le formulaire.Par contre si je met return false dans toutes mes conditions le formulaire ne s'envoie pas mais la fonction n’exécute qu'une condition puis s’arrête..

    Ma balise formulaire
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <form name="formRAPPORT_VISITE" method="post" action="recupRAPPORT_VISITE.php" onsubmit="return verif()">

    Ma fonction javascript
    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 verif()
        {
        submit = true;
        praticien = document.getElementById('PRA_NOM');
        bilan = document.getElementById('RAP_BILAN');
        produit1 = document.getElementById('PROD1');
        produit2 = document.getElementById('PROD2');
        motif = document.getElementById('RAP_MOTIF');
        motifautre = document.getElementById('RAP_MOTIFAUTRE');
        if(praticien.value == 'praticien')
        {
        surligne(praticien, true)
        submit = false;
        }
        if(bilan.value.length < 2)
        {
        surligne(bilan, true)
        submit = false;
        }
        if(produit1.value == 'Produit 1')
        {
        surligne(produit1, true)
        submit = false;
        }
        if(produit2.value == 'Produit 2')
        {
        surligne(produit2, true)
        submit = false;
        }
        if(motif.value == 'AUT')
        {
        if(motifautre.value.length < 2)
        {
        surligne(motifautre, true)
        submit = false;
        }
        }
        return submit;
        }
    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    il te faut passer par la gestion de l'événement
    il y a les méthodes
    event.stopPropagation()
    event. preventDefault()

    ça s'utilise comme ça :

    Ta balise formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form name="formRAPPORT_VISITE" method="post" action="recupRAPPORT_VISITE.php" onsubmit="verif(event);">
    Ma fonction javascript
    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
    function verif(event) {
        praticien = document.getElementById('PRA_NOM');
        bilan = document.getElementById('RAP_BILAN');
        produit1 = document.getElementById('PROD1');
        produit2 = document.getElementById('PROD2');
        motif = document.getElementById('RAP_MOTIF');
        motifautre = document.getElementById('RAP_MOTIFAUTRE');
        if(praticien.value == 'praticien')
        {
            surligne(praticien, true);
            event.stopPropagation();
        }
        if(bilan.value.length < 2)
        {
            surligne(bilan, true);
            event.stopPropagation();
        }
        if(produit1.value == 'Produit 1')
        {
            surligne(produit1, true);
            event.stopPropagation();
        }
        if(produit2.value == 'Produit 2')
        {
            surligne(produit2, true);
            event.stopPropagation();
        }
        if(motif.value == 'AUT')
        {
            if(motifautre.value.length < 2)
            {
                surligne(motifautre, true);
                event.stopPropagation();
            }
        }
    }
    Je ne sais plus laquelle des deux méthodes il faut utiliser
    de plus il me semble que IE au moins dans certaines version ne respecte pas le standard à ce sujet.

    il est peut être nécessaire de traiter l'événement pour la majorité des navigateurs et le return false pour IE

    AP+JYT

  3. #3
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 209
    Par défaut
    Bonjour,
    Quand je teste sa fonctionne c'est a dire que les champ non remplit sont souligné en rouge par contre il envoit quand même le formulaire.
    je verrais plutôt un problème dans le script, mais vu celui ci je pencherais pour un problème sur l'identifiant d'un des éléments.

    Attention également à l'utilisation d'un INPUT type="image".

    Il serait donc intéressant de voir le HTML du formulaire.

  4. #4
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    bonjour,

    il y a quand même une chose qui me gène dans ce code : les variables ne sont pas déclarées. Si un objet porte le même nom qu'une de ces variables il y aura des soucis.

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Par défaut
    Bonjour,

    Comme NoSmoking, je pense à un problème dans l'exécution du script.
    Un try catch englobant le code entre la déclaration de "submit" et le return de fin doit permettre de s'en assurer.

Discussions similaires

  1. Controle de saisie sur une liste déroulante
    Par antier dans le forum IHM
    Réponses: 3
    Dernier message: 07/12/2005, 05h42
  2. Controler une saisie
    Par philippef dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/08/2005, 10h36
  3. DBGrid personnalisé (controle de saisie numérique et date).
    Par abdelghani_k dans le forum Bases de données
    Réponses: 2
    Dernier message: 18/04/2005, 18h50
  4. ptit probleme de controle de saisie de formulaire
    Par coachbob44 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 24/03/2005, 14h09
  5. [LG]contrôle de saisie
    Par zetterberg_10 dans le forum Langage
    Réponses: 8
    Dernier message: 10/02/2005, 13h55

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