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 :

Tiret (-) dans un nom de champ input n'est pas reconnu par la fonction javascript


Sujet :

JavaScript

  1. #1
    Membre éclairé Avatar de Dsphinx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2005
    Messages
    1 082
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 082
    Points : 884
    Points
    884
    Par défaut Tiret (-) dans un nom de champ input n'est pas reconnu par la fonction javascript
    Hello à tous,

    J'ai un champ input que je teste s'il est vide mais le tiret n'est pas pas le bienvenu dans le contrôle javascript !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" name="prenom-PEC" id="prenom-PEC" />
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    		function valider(){
     
    		  if(document.formStepThree.prenom-PEC.value != "") {
    			return true;
    		  }
    		  else {
    			alert("Saisissez le prenom");
    			return false;
    		  }
    		}
    Sans le tiret dans l'id du champ c'est tout bon, la fonction est OK ! Dois-je absolument l'enlever (ce que je n'ai pas envie du tout car le nom est généré depuis une énorme base de donnée et ça serait très fastidieux.)

    Y-a-il un moyen de contourner ce problème en gardant le tiret ?

    Merci !

  2. #2
    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,

    Tu peux passer par une autre syntaxe comme par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("prenom-PEC");
    Ou bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.forms["formStepThree"].elements["prenom-PEC"]

  3. #3
    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 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut

    Le - est tout a fait correcte dans un id ou un name, c'est un caractère autorisé !


    utilise une syntaxe rigoureuse et pas laxiste ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.formStepThree.prenom-PEC.value


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.forms['formStepThree'].elements['prenom-PEC'][0].value
    ou avec l'id :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('prenom-PEC').value
    Sinon en dehors des strings le - est considéré comme opérateur de soustraction

  4. #4
    Membre éclairé Avatar de Dsphinx
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2005
    Messages
    1 082
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 082
    Points : 884
    Points
    884
    Par défaut
    Merci SpaceFrog et Vermine ! Rapide précis et le code est plus propre !

    Le mien était un peu barbare !

  5. #5
    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 : 54
    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
    Pour info, le signe "-" en JavaScript est un opérateur, du coup, quand tu écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.formStepThree.prenom-PEC.value
    JavaScript comprend
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (document.formStepThree.prenom) - (PEC.value)
    ce qui provoque évidemment une erreur

  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 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    Beef
    Sinon en dehors des strings le - est considéré comme opérateur de soustraction
    Merci pour la traduction

  7. #7
    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 : 54
    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



  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 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 25/02/2013, 16h09
  2. Réponses: 1
    Dernier message: 20/08/2008, 15h05
  3. Espace dans le nom du champs (PB)
    Par crovette51101 dans le forum Oracle
    Réponses: 2
    Dernier message: 08/11/2006, 13h17
  4. [Oracle / Nom de schema] Tiret dans un nom de schema
    Par shaun_the_sheep dans le forum Oracle
    Réponses: 2
    Dernier message: 23/03/2006, 16h43
  5. [MySQL] mot réservé dans un nom de champ
    Par dreamwanderer dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 10/12/2005, 20h54

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