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 :

[DOM] création d'un nombre de champs dependant d'autres variables


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 112
    Points : 67
    Points
    67
    Par défaut [DOM] création d'un nombre de champs dependant d'autres variables
    salut,
    je veux faire un formulaire avec un champ et un bouton une fois introduit une valeur numérique (n) et en appuyant sur le bouton il y aura une création d'un (n) champs texte dans la même page (dans un div par exemple)
    merci d'avance

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

  3. #3
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    Citation Envoyé par tntneo Voir le message
    en appuyant sur submit
    la page est partie. tu ne peux pas faire grands chose après.
    fais un tour côté ajax...

  4. #4
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 112
    Points : 67
    Points
    67
    Par défaut
    je suis entrain de lire ça mais c'est un peu compliqué

    c'est pas forcement un submit même un bouton normal

  5. #5
    Membre habitué Avatar de Alt157
    Profil pro
    Inscrit en
    Février 2009
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 143
    Points : 146
    Points
    146
    Par défaut
    Bonjour,

    Tu peux faire quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function AjouteChamps(nom)
    {
      nbre = document.getElementById(nom).value;
      for( i = 0; i < nbre; i++)
      {
            textbox = document.createElement('input');
    	textbox.setAttribute("type","text" );
    	textbox.setAttribute("name","champ"+(i+1));
            document.getElementById('monDiv').appendChild(textbox);
      }
    }
    et sur le bouton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="button" name="monbouton" onclick="AjouteChamps('idDuTextboxOuEstEcritLaValeur')" />

  6. #6
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 112
    Points : 67
    Points
    67
    Par défaut
    merci beaucoup
    ça marché
    poblème résolu

  7. #7
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    textbox.setAttribute("name","champ"+(i+1));
    j'ai des doutes sous IE ...

    selon msdn "name attruibute cannot be set at runtime"
    autrement dit l'attribut name ne peut etre definit ou modifié dynamiquement

  8. #8
    Membre habitué Avatar de Alt157
    Profil pro
    Inscrit en
    Février 2009
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 143
    Points : 146
    Points
    146
    Par défaut
    A merde, j'avoue l'avoir utiliser qu'une fois pour un truc personnel et comme j'utilise toujours FF j'avais jamais testé sur IE. Après l'avoir testé je confirme. Cela ne marche pas sur IE... Désolé !

    On peut toujours se faire un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var input = '<input type="text" name="champ' + (i+1)'" />
    et ajouter cela par innerHTML et tant pis pour le DOM

  9. #9
    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
    pareil ça ne fonctionnera pas, c'est sasn doute d'ailleurs pour cela que je me suis fendu d'un truc "un peu complique" pour palier à cette lacune d'IE ...

  10. #10
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 112
    Points : 67
    Points
    67
    Par défaut
    oui même avec d'autre navigateur comme opera ne marche pas
    le truc que l'attribut ne peut être définit ou modifié dynamiquement
    donc on peut dire c moitié résolu
    ça marche que sur firefox

  11. #11
    Membre habitué Avatar de Alt157
    Profil pro
    Inscrit en
    Février 2009
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 143
    Points : 146
    Points
    146
    Par défaut
    Je ne comprends pas ce que tu entends par : cela ne passera pas.

    Si l'on fait un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    function AjouteChamps(nom)
    {
      nbre = document.getElementById(nom).value;
      var texte = '';
      for( i = 0; i < nbre; i++)
      {
            text += '<input type="text" name="monChamp' + (i+1) + '" />';
      }
      document.getElementById('maDiv').innerHTML = text;
    }
    Pourquoi cela ne passerait pas ? Après c'est peut être les différences entre les IE mais sur IE 7 il m'affiche bien mes textbox.

    Merci pour les infos

  12. #12
    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
    ils sont affichés mais le name n'est pas forcément prix en compte, et du coup la valuer n'est pas forcément soulise lors du submit du form etcoté serveur tu ne recupères pas tes valeurs $_POST['name'] ou $_GET['name']

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 201
    Points : 196
    Points
    196
    Par défaut
    Citation Envoyé par Matthieu2000 Voir le message
    la page est partie. tu ne peux pas faire grands chose après.
    fais un tour côté ajax...
    Sauf si
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <form onsubmit="javascript:MaMethod(); return false;">
    </form>
    Autrement comment ferait-on pour vérifier le contenu d'un formulaire avant validation?

  14. #14
    Membre habitué Avatar de Alt157
    Profil pro
    Inscrit en
    Février 2009
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 143
    Points : 146
    Points
    146
    Par défaut
    on pourrait par exemple utiliser un button et non un submit qui ferait les vérifications et appellerait la méthode submit après.

    edit : désolé spacefrog j avais pas vu ta réponse. Merci pour l'information c'est vrai que j'utilise de temps en temps la façon de faire (avec innerHTML) et j'avais jamais remarqué que cela pouvait posé des problèmes mais c'est vrai que la plupart du temps c'était pour des applis perso donc tournant sur FF mais bon... Ben merci beaucoup je vais essayer d'en apprendre plus sur ta méthode qui a priori est la meilleure. Merci

  15. #15
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 201
    Points : 196
    Points
    196
    Par défaut
    Citation Envoyé par Alt157 Voir le message
    on pourrait par exemple utiliser un button et non un submit qui ferait les vérifications et appellerait la méthode submit après.
    Et une personne n'ayant pas javascript d'activé ne pourrais jamais valider ton formulaire

  16. #16
    Membre habitué Avatar de Alt157
    Profil pro
    Inscrit en
    Février 2009
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 143
    Points : 146
    Points
    146
    Par défaut
    lol je m'y attendais à cette réponse mais j'ai du quitter le PC deux minutes et n'ai pas eu le temps de faire la modif pour marquer la précision avant ta réponse.

    C'était juste pour dire qu'il y avait d'autres solutions possibles, même si elle ne sont pas forcement meilleures. tout dépend du contexte.

Discussions similaires

  1. Réponses: 4
    Dernier message: 01/08/2013, 22h27
  2. Réponses: 2
    Dernier message: 25/03/2009, 09h45
  3. Réponses: 1
    Dernier message: 04/03/2009, 14h41
  4. [DOM] création dynamique de champs
    Par Ekik dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/01/2007, 10h11
  5. [DOM] création d'un champ input
    Par harold63 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 31/07/2006, 16h19

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