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 :

Test de Variable


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 70
    Points : 47
    Points
    47
    Par défaut Test de Variable
    Bonjour,

    Je dois tester une variable avec un script javascript.
    En fait j'y arrive d'une manière mais de l'autre qui semble plus propre ca ne marche pas.

    Code qui fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function validInscription() {
    	var login = document.getElementById('inscription').login.value;
    	if (document.getElementById('inscription').login.value=="") {
    		alert("loginvide");
    		return false;
    	}
    }
    Code qui ne fonctionne pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function validInscription() {
    	var login = document.getElementById('inscription').login.value;
    	if (login=="") {
    		alert("loginvide");
    		return false;
    	}
    }
    Je ne vois pas d'ou vient le problème :p
    Merci de votre aide.

    Cordialement,
    Nico

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2010
    Messages : 19
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par Nicolas94 Voir le message
    Code qui fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function validInscription() {
    	var login = document.getElementById('inscription').login.value;
    	if (document.getElementById('inscription').login.value=="") {
    		alert("loginvide");
    		return false;
    	}
    }
    Qu'entendez-vous par "fonctionne" ?

    Qu'est-ce que la fonction est censé retourner comme résultat si la valeur du champ n'est pas vide ?

    Ici, faute d'un return explicite, elle renvoie undefined, ce qui sera facilement confondu avec false. Mais je ne sais pas si c'est ça, votre problème.

  3. #3
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Heu...
    Citation Envoyé par Nicolas94 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function validInscription() {
    	var login = document.getElementById('inscription').login.value;
    	if (document.getElementById('inscription').login.value=="") {
    		alert("loginvide");
    		return false;
    	}
    }
    Code qui ne fonctionne pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function validInscription() {
    	var login = document.getElementById('inscription').login.value;
    	if (login=="") {
    		alert("loginvide");
    		return false;
    	}
    }
    Si j'ai bien compris, tu fais référence à un input dans un formulaire (dont l'id est inscription), en utilisant la propriété name. Mais pourquoi ne pas directement donner un id à ton input et le référencer :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    var login = document.getElementById("idDeTonInput").value;
    ? ^^
    Ca y gagnerait en simplicité/lisibilité, et au niveau compatibilité entre navigateurs je ne suis pas sûr que la syntaxe basée sur le name soit très fiable...

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 70
    Points : 47
    Points
    47
    Par défaut
    Bonjour,

    Merci de vos remarques.
    J'utilise un getElementById car je ne peux pas utiliser de name=.. dans la déclaration de mon formulaire pour des soucis de validation xhtml.

    Pour les soucis de navigateurs le code fonctionne donc je ne vois pas le rapport.

    Mon problème est juste que la seconde façon d'écrire le code est plus "propre", car elle reprend une variable ou est est affectée une valeur.

    Cependant ça ne fonctionne pas, et je ne sais pas pourquoi.

    Merci Svp de se concentrer sur ça sans vouloir changer ce qui ne nécessite pas (il me semble) de l'être.

    Cordialement,
    Nico.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2010
    Messages : 19
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par Nicolas94 Voir le message
    J'utilise un getElementById car je ne peux pas utiliser de name=.. dans la déclaration de mon formulaire pour des soucis de validation xhtml.
    Je ne comprends pas le souci de validation, mais en tout état de cause, c'est bien d'utiliser document.getElementById qui est régi par une norme W3C plutôt que telle ou telle fantaisie plus ou moins documentée de tel ou tel navigateur.

    Pour les soucis de navigateurs le code fonctionne donc je ne vois pas le rapport.
    Moi, mon souci, c'est que je ne comprends pas le vôtre

    Qu'appelez-vous "fonctionner" ? Qu'est-ce que votre fonction est censée faire, qu'elle fait dans le premier cas et non dans le second ?

  6. #6
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Bonjour,

    Dites-nous aussi ce que retourne un alert de:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('inscription').login.value
    et de login après affectation.

  7. #7
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Et puis tu nous montres une fonction JS de validation d'éléments HTML dont nous n'avons pas le code...
    Poste un extrait de l'html correspondant à ton formulaire, qui *je suppose mais c'est lourd d'être obligé de supposer* doit peut-être appeler la fonction de validation comme ça ? (mais avec ou sans le return ça fait une différence ^^)
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <form id="inscription" action="blabla.php" onsubmit="return validInscription();">
    Sinon, à part ça : je m'accroche encore un peu parce que je sais que la communication par forum interposé n'est pas forcément évidente, mais si tu te vexes encore je passe à autre chose et on en parle plus hein...

  8. #8
    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
    Le nom de ta variable est le même que celui de ton champ, cela perturbe JavaScript qui ne sait pas quel objet choisir.

    Essaye avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function validInscription() {
    	var mon_login = document.getElementById('inscription').login.value;
    	if (mon_login=="") {
    		alert("loginvide");
    		return false;
    	}
    }

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2010
    Messages : 19
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par vermine Voir le message

    Dites-nous aussi ce que retourne un alert de:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('inscription').login.value
    et de login après affectation.
    Dans la mesure où il y a très peu de chances pour que l'objet DOM retourné par document.getElementById('inscription'), à supposer qu'il existe tout court et qu'il existe en plus déjà au moment de l'appel de la fonction, ait une propriété appelée "login" laquelle aurait elle-même une propriété appelée "value", ça m'intéresserait aussi !

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 70
    Points : 47
    Points
    47
    Par défaut ^^
    Merci Bovino pour la réponse.
    Mon problème était en effet là ou tu le dis.

    Merci aux autres aussi de vous être penché sur le problème.

    Cordialement,
    Nico.

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

Discussions similaires

  1. Création et test de variables
    Par pat-lion dans le forum Delphi
    Réponses: 9
    Dernier message: 11/08/2006, 12h20
  2. Test de variable en php
    Par Andry dans le forum Langage
    Réponses: 3
    Dernier message: 31/07/2006, 10h41
  3. test sur variable
    Par vince2005 dans le forum Langage
    Réponses: 5
    Dernier message: 18/07/2006, 13h19
  4. Se faire une page de teste de variable
    Par DaD92 dans le forum Langage
    Réponses: 2
    Dernier message: 17/06/2006, 18h17
  5. [PHP-JS] Test des variables (PHP ou JavaScript) ??
    Par King_T dans le forum Langage
    Réponses: 5
    Dernier message: 23/05/2006, 12h19

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