[JavaScript] Activer/Désactiver des champs dans un formulaire

Activer/Désactiver des champs dans un formulaire [JavaScript] - HTML/CSS - Programmation

Marsh Posté le 13-10-2008 à 11:21:48    

Bonjour,
Je souhaiterais faire un formulaire d'envoi d'invitations.
 
Le formulaire se présente de la manière suivante.
 
un label accompagné d'un champ pour le nom de l'envoyeur | un label accompagné d'un champ pour l'email de l'envoyeur
 
un textarea pour le message pour le(s) destinataire(s)
 
un label accompagné d'un champ pour le nom du destinataire 1 | un label accompagné d'un champ pour l'email du destinataire 1
 
un bouton "ajouter un destinataire". un bouton "supprimer un destinataire".
 
Si on clique sur le bouton "ajouter un destinataire" cela fait apparaitre deux champs :
 
un label accompagné d'un champ pour le nom du destinataire 2 | un label accompagné d'un champ pour l'email du destinataire 2
et ainsi de suite
 
Si on clique sur le bouton "supprimer un destinataire" cela supprime deux champs :
 
un label accompagné d'un champ pour le nom du destinataire 2 | un label accompagné d'un champ pour l'email du destinataire 2
et ainsi de suite
 
Voici le lien vers le modèle que j'ai suivi.
http://www.quirksmode.org/dom/domform.html
 
J'ai l'impression d'avoir tout suivi à la lettre mais cela ne fonctionne pourtant pas.
Si quelqu'un pouvait éclairer ma lanterne ...
 
J'ai passé tout mon lundi sur ça sans résultat. Ça va me rendre dingue  :cry:


Message édité par Dante-33 le 13-10-2008 à 11:35:52
Reply

Marsh Posté le 13-10-2008 à 11:21:48   

Reply

Marsh Posté le 14-10-2008 à 08:21:28    

je crois qu ici tout le monde connait quirksmode  
il serait peut etre plus judicieux de nous envoyer un lien vers ton travail
imagine juste a quel point "ca marche pas" peut nous etre utile....


---------------
« The enemy is the gramophone mind, whether or not one agrees with the record that is being played at the moment. » — George Orwell
Reply

Marsh Posté le 14-10-2008 à 09:49:32    

Oui bien sur voici mon code
J'arrive à faire retirer les champs mais pas a en ajouter.
 
 

Code :
  1. <?php
  2. include_once("squelette.php" );
  3. $monSquelette = new CSquelette;
  4. $monSquelette->fctDoctype();
  5. $monSquelette->fctTitleDescriptionKeywords("leTitre","laDescription","LesKeywords" );
  6. $monSquelette->fctFinMetaDebutBody();
  7. ?>
  8. <!-- La phrase d'intro est à remplir ici -->
  9. <p></p>
  10. <script type="text/javascript" src="invite.js"></script>
  11. <?php
  12. $monSquelette->fctFinHeader()
  13. ?>
  14. <!-- Le contenu est à rempli ici -->
  15. <div id="content">
  16.   Your name : <input name="yourName" />   Your email : <input name="yourEmail" /><br /><br />
  17.   Your message : <textarea rows="5" cols="20" name="yourMessage"></textarea>
  18.  <div id="readroot" style="display: none">
  19.   <input type="button" value="Remove review" onclick="this.parentNode.parentNode.removeChild(this.parentNode);" /><br /><br />
  20.   Her/His name : <input name="herHisName" />   Her/His email : <input name="herHisEmail" /><br /><br />
  21.  </div>
  22.  <form method="post" action="/cgi-bin/show_params.cgi">
  23.   <span id="writeroot"></span>
  24.   <input type="button" id="moreFields" value="Add recipient" />
  25.   <input type="submit" value="Send form" />
  26.  </form>
  27. </div>
  28. <?php
  29. $monSquelette->fctPiedDePageEtFin();
  30. ?>


 
et ça c'est le javascript je n'y est pas touché c'est exactement le même que sur http://www.quirksmode.org/dom/domform.html
 

Code :
  1. var counter = 0;
  2. function moreFields() {
  3. counter++;
  4. var newFields = document.getElementById('readroot').cloneNode(true);
  5. newFields.id = '';
  6. newFields.style.display = 'block';
  7. var newField = newFields.childNodes;
  8. for (var i=0;i<newField.length;i++) {
  9.  var theName = newField[i].name
  10.  if (theName)
  11.   newField[i].name = theName + counter;
  12. }
  13. var insertHere = document.getElementById('writeroot');
  14. insertHere.parentNode.insertBefore(newFields,insertHere);
  15. }
  16. window.onload = moreFields;

Reply

Marsh Posté le 14-10-2008 à 10:24:24    

il faut juste dire a ton script d executer la fonction moreFields() sur le onclick


---------------
« The enemy is the gramophone mind, whether or not one agrees with the record that is being played at the moment. » — George Orwell
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed