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 :

Fonction vérification avec div


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Etudiant en DUT Réseaux & Télécoms
    Inscrit en
    Juillet 2014
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Réunion

    Informations professionnelles :
    Activité : Etudiant en DUT Réseaux & Télécoms
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2014
    Messages : 41
    Points : 28
    Points
    28
    Par défaut Fonction vérification avec div
    Bonjour à tous,

    Afin de vérifier un formulaire j'ai repris un code JS que j'ai évidemment adapté à mes besoins. Cependant c'est que le formulaire doit aussi modifier son comportement en fonction des choix de l'utilisateur. J'ai donc, afin de modifier ce comportement placer un champ dans une div... Et voilà que la vérification JS du TP ne fonctionne plus, je pense à une erreur au niveau DOM mais après plusieurs tentatives, je suis un peu perdu... Je précise aussi que si on enlève la division, la fonction de vérification fonctionne à nouveau, je vous donne le code qui concerne cette partie :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <label class="form_col" for="idispconnect">Code Opérateur d'interconnexion :</label>
    <div class="depentporta">
        <input type=text id="idispconnect" name="idispconnect" maxlength="6">
    </div>
    <span class="tooltip">Vous devez entrer un code opérateur d'interconnexion</span><br /><br /><br />

    CSS :

    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    .depentporta {
    visibility : hidden;
    margin-left : 200px;
    }

    JS de vérification pour ce champ :

    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
    check['idispconnect'] = function() {
        var porta = document.getElementById('porta'),
            idispconnect = document.getElementById('idispconnect'),
            depentporta = document.getElementById('depentporta'),
            tooltipStyle = getTooltip(depentporta.childNodes).style;
        if (idispconnect == undefined){
            idispconnect.className = 'correct';
            tooltipStyle.display = 'none';
            return true;
        } else if (porta.options[porta.selectedIndex] == undefined) {
            idispconnect.className = 'correct';
            tooltipStyle.display = 'none';
            return true;  
        } else if (idispconnect.value == "" && porta.options[porta.selectedIndex].value == "PORTA") {
            idispconnect.className = 'incorrect';
            tooltipStyle.display = 'inline-block';
            return false;
        } else {
            idispconnect.className = 'correct';
            tooltipStyle.display = 'none';
            return true;
        }
    };
    Pour faire court, ce champ s'affiche quand une condition est remplie (dans le JS, mais qui n'est pas présent dans ce post), et cela fonctionne. C'est seulement la fonction de vérification derrière qui ne fonctionne pas... Si vous avez une idée je suis preneur.

    Merci d'avance =)

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <div class="depentporta">
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    depentporta = document.getElementById('depentporta')
    Tu saurais traduire "get element by id" en français (indice : surtout la partie en gras) ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Etudiant en DUT Réseaux & Télécoms
    Inscrit en
    Juillet 2014
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Réunion

    Informations professionnelles :
    Activité : Etudiant en DUT Réseaux & Télécoms
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2014
    Messages : 41
    Points : 28
    Points
    28
    Par défaut
    Effectivement je cours me cacher... Bon au moins celle là je ne la referai plus...

    Cependant, cela ne fonctionne toujours pas en changeant class par id... j'ai évidemment viré les autres div portant le même id pour le moment, aussi j'ai pensé à une solution plus simple au niveau des variables, mais ça ne fonctionne toujours pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var porta = document.getElementById('porta'),
        idispconnect = document.getElementById('idispconnect'),
        tooltipStyle = getTooltip(idispconnect).style;

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tooltipStyle = getTooltip(idispconnect).style;
    Il faudrait déjà savoir ce que retourne la fonction getTooltip().

    Sinon, il reste des incohérences dans ton code...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (idispconnect == undefined){
     idispconnect.className = 'correct';
     tooltipStyle.display = 'none';
     return true;
    }
    Si la variable vaut undefined, tu ne peux pas lui affecter de classe ni de style !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Etudiant en DUT Réseaux & Télécoms
    Inscrit en
    Juillet 2014
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Réunion

    Informations professionnelles :
    Activité : Etudiant en DUT Réseaux & Télécoms
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2014
    Messages : 41
    Points : 28
    Points
    28
    Par défaut
    Oui, je m'en suis rendu compte alors que je venais de me relire, alors la fonction getTooltip est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     function getTooltip(element) {
        while (element = element.nextSibling) {
            if (element.className === 'tooltip') {
                return element;
            }
        }
        return false;
    }

Discussions similaires

  1. fonction de vérification avec les sockets
    Par yacin87 dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 19/04/2010, 03h47
  2. fonction bordure avec <td> et <div> (+<a>)
    Par Lareine dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/11/2005, 08h57
  3. fonctions stockées avec une table en argument
    Par bdkiller dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 08/10/2004, 23h17
  4. fonction left avec sql server 6.5
    Par shake dans le forum Langage SQL
    Réponses: 2
    Dernier message: 29/06/2004, 08h48
  5. Fonction If avec rs.eof problème
    Par M1000 dans le forum ASP
    Réponses: 5
    Dernier message: 24/03/2004, 17h10

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