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éer un formulaire dynamique


Sujet :

JavaScript

  1. #1
    Membre confirmé Avatar de greg13
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 144
    Par défaut [DOM] Créer un formulaire dynamique
    Bonjour

    Voilà mon problème :
    Je voudrais faire un formulaire dont l'apparence changer suivant ce que l'utilisateur fait. En faite, il faudrait afficher une input box type texte, et lorsque l'utilisateur clique sur une "ajouter une boite", qu'il y ait une deuxième zone de texte, et ainsi de suite, .... "sans limite". Et cela en javascript, sans devoir recharger la page. Je cherche une technique compatible avec les navigateurs actuels.

    Je pense que pour faire simple, ce que je voudrais faire, c'est changer le code html de ma page via javascript.

    Merci d'avance

  2. #2
    Membre Expert Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Par défaut
    J'ai du mal à dégager la problématique de l'ensemble, mais pour faire ce que tu souhaites, jette un oeil du coté des méthodes du DOM

    cf la FAQ pour le principe et la doc chez Mozilla pour plus de détails

  3. #3
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    coté javascript :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function addInput(){
    		MonFormulaire = document.getElementById('monform');
    		tempInput = document.createElement('input');
    		tempInput.setAttribute("type","text");
    		tempInput.setAttribute("name","inputn[]");
    		MonFormulaire .appendChild(tempInput);
    }
    et tu appel cette méthode sur un bouton

  4. #4
    Membre confirmé Avatar de greg13
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 144
    Par défaut
    Et quand tu utilises la methode appendChild, il va te taper ton champs juste avant la fin du formulaire, tu peux inserer des label, des balises p, etc comme ça?

  5. #5
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    oui conseil :

    -créer tes objet
    -puis tu appenchild champs input+label a une div
    - append child la div a ton formulaire ...

  6. #6
    Membre confirmé Avatar de greg13
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 144
    Par défaut
    Ok j vais tester tout ça. Et pour supprimer un element qu'on aurait ajouter avec appendChild, on peut faire comment si on connait son id?

  7. #7
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    récupèrer le parent de l'élément =>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('tonId').parentNode.removeChild(document.getElementById('tonId'));
    en une ligne bien barbare lol découpe la en variable

  8. #8
    Membre confirmé Avatar de greg13
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 144
    Par défaut
    okiii, merci en tout cas c'est sympa pour l'aide, je fais presque jamais de javascript mais là j'en ai besoin pour un petit truc.

  9. #9
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    de rien, n'oublies pas le tag résolu ^^

  10. #10
    Membre confirmé Avatar de greg13
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 144
    Par défaut
    t'inquiete pas j vais mettre le tag, mais pas tout de suite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    label = document.createElement("label");
    label.setAttribute("for", "choice"+i);
    puis je l'ajoute a un parent mais comment on fait pour mettre le contenu dans le label, une phrase?

  11. #11
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    label = document.createElement("label");
    label.setAttribute("for", "choice"+i);
    letexteDuLabel = document.createTextNode('voila le texte');
    label.appendChild(letexteDuLabel);

  12. #12
    Membre confirmé Avatar de greg13
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 144
    Par défaut
    Merci pour tout, ça a l'air de marcher. J dois encore intégrer ça avec du php etc. Bonne journée

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

Discussions similaires

  1. créer un formulaire dynamiquement
    Par sebac dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 16/03/2010, 10h17
  2. [MySQL] Créer un formulaire dynamique
    Par Vetchostar dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 23/01/2010, 07h58
  3. Comment créer un formulaire dynamique en java
    Par maarten dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 16/08/2009, 22h30
  4. [WebForms]créer une formulaire dynamiquement
    Par lamiae18 dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 16/01/2007, 19h43
  5. Créer un formulaire dynamique
    Par pomgnon dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 13/03/2006, 15h13

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