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 :

nommer mes inputs


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juillet 2007
    Messages : 35
    Points : 29
    Points
    29
    Par défaut nommer mes inputs
    Bonjour,

    J'ai un problème dont je ne trouve pas la solution qui doit pourtant etre toute bête.
    J'ai un formulaire pour lequel l'utilisateur doit pouvoir ajouter des lignes... Jusque là pas de problème, j'arrive à ajouter mes lignes sans problème.
    Sur chaque ligne j'ai 3 input: 1 de type checkbox et 2 de type text.
    J'aimerais donner un nom à mes input pour pouvoir faire mon traitement. Et c'est ça que je n'arrive pas à faire.

    J"ai essayé avec des setAttribute et aussi comme ça dans mon javascript:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var contenu1 = document.createElement("INPUT");
    var contenu2 = document.createElement("INPUT");
    var contenu3 = document.createElement("INPUT");
    contenu1.type = "checkbox";
    contenu1.name = "checkESN";
    contenu2.type = "text";
    contenu2.name = "ESNmin";
    contenu3.type = "text";
    contenu3.name = "ESNmax";
    Mais ensuite quand je fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    tab = document.getElementsByName("checkESN");
    for(i=0; i<tab.length; i++)
    	alert(tab[i] + i);
    il ne me fait aucun alert...

    Est ce que quelqu'un a une idée ou une piste pour m'aider?

  2. #2
    Membre régulier Avatar de LexWizard
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2007
    Messages : 101
    Points : 119
    Points
    119
    Par défaut
    Je ne sais pas exactement quel est ton traitement, mais je te conseil de donner un ID à chaque Input. Si l'utilisateur peut appeler plusieurs fois la fonction, il faut créer un variable qu'on incrémentera pour donner un ID unique à chaque input :
    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
     
    var nb = 0;
    function add (){
         var contenu1 = document.createElement("INPUT");
         var contenu2 = document.createElement("INPUT");
         var contenu3 = document.createElement("INPUT");
         contenu1.type = "checkbox";
         contenu1.ID= "checkESN_" + nb;
         contenu2.type = "text";
         contenu2.ID = "ESNmin_" + nb;
         contenu3.type = "text";
         contenu3.ID= "ESNmax_" + nb;
         nb ++;
         //[..]
    }
    quand l'utilisateur va lancer la fonction add il ajoutera les input qui auront comme id:
    checkESN_0 / ESNmin_0 / ESNmax_0, puis
    checkESN_1 / ESNmin_1 / ESNmax_1, ...

    J'espere que ça répond à ta question

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juillet 2007
    Messages : 35
    Points : 29
    Points
    29
    Par défaut
    Heu merci de cette reponse mais c'est pas vraiment ce que je cherche.
    J'ai besoin de recuperer tous les inputs qui ont le meme nom pour mon traitement.
    J'pensais à un className sinon mais je sais pas m'en servir et je manque un peu de temps. je vais me pencher dessus en attendant une reponse.

  4. #4
    Membre régulier Avatar de LexWizard
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2007
    Messages : 101
    Points : 119
    Points
    119
    Par défaut
    En fait, la code que tu as marche sous FF.
    C'est un problème avec IE. Microsoft dit de crée l'élement ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var contenu1 = document.createElement("<INPUT TYPE='checkbox' NAME='checkESN'>");
    plutot que comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var contenu1 = document.createElement("INPUT");
    contenu1.type = "checkbox";
    contenu1.name = "checkESN";
    Biensur c'est moche d'écrire de l'HTML dans un createElement.
    Ni FF, (ni à mon avis les autres naviguateurs) ne fonctionne comme IE. Et donc ce code ne marche que pour IE.
    C'est pour ça que je t'orientais vers l'utilisation des ID. Sinon tu devra tester le navigateur utilisé pour créer tes elements.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juillet 2007
    Messages : 35
    Points : 29
    Points
    29
    Par défaut
    Ah oki.
    Bon ben je vais voir comment je vais faire mais c'est pour un intranet donc je pense que mes utilisateurs utiliseront tous IE. Et sinon je ferais un test pour voir si c'est IE ou non qui est utilisé.
    Un grand merci pour ta reponse.

  6. #6
    Membre régulier Avatar de LexWizard
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2007
    Messages : 101
    Points : 119
    Points
    119
    Par défaut
    Sinon je t'invite fortement à utiliser les ID. c'est pas plus compliqué, tu peux faire comme ça pour récuperer tout tes 'checkESN' :
    Tu utilise la variable nb, et le code que je t'ai donné précédement avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function recup ()
    {
         for(i=0; i<nb; i++)
         {
              document.getElementById("checkESN_" + i).checked;
         }
    }
    Ainsi tu récuperes l'état de checkESN_0, checkESN_1, checkESN_2,...Et dans la même boucle tu peux récuperer les texts de tes autres input.
    Et biensur c'est compatible avec tous les navigateurs

    Bonne continutation

  7. #7
    Nouveau membre du Club
    Inscrit en
    Juillet 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juillet 2007
    Messages : 35
    Points : 29
    Points
    29
    Par défaut
    Oui bien sur, je n'avais pas du tout pensé à ca. Comme quoi, la solution etait vraiment tout bête.
    Encore merci.

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Crée d'abord l'attribut ID avant l'attribut NAME et ça passera

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

Discussions similaires

  1. Comment rendre tous mes inputs et textareas disabled
    Par pierrot10 dans le forum jQuery
    Réponses: 2
    Dernier message: 19/10/2010, 10h36
  2. sauvegarder mes input radio lors d'un rafraichissement
    Par leau2001 dans le forum Langage
    Réponses: 5
    Dernier message: 02/03/2009, 11h09
  3. [DOM] Nommer mes zones de texte créées dynamiquement par javascript
    Par beegees dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 27/10/2008, 11h56
  4. Decalage entre mes input image et le texte
    Par starkson dans le forum Webdesign & Ergonomie
    Réponses: 1
    Dernier message: 18/07/2008, 14h41
  5. recuperer tout les parametres de mes inputs
    Par skillipo dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 19/02/2008, 17h51

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