OVH Cloud OVH Cloud

Duplication de zone de formulaire

4 réponses
Avatar
Kalbo
Bonjour,

Je cherche a dupliquer un tableau qui contient des champs (textbox,
listbox,...) à l'intérieur.

Sur ma page html, au niveau du tableau a dupliqué j'ai mis un bouton +. A
chaque clic sur ce bouton il faudrait qu'un deuxième tableau (identique) se
créé en dessous du premier. Ainsi de suite.

Le problème c'est que je ne vois pas comment écrire une fonction javascript
qui duplique des morceaux de formulaires.

Merci de votre aide.

4 réponses

Avatar
Sebastien Bovo [MS]
Bonjour,

Voici un idée de depart :


<HTML>
<HEAD>
<SCRIPT language="javascript">
function Duplicate()
{
var fullText, partToDuplicate;

//On recupere tout le contenu du formulaire
s = document.forms[0].innerHTML;

//On recupere tout le texte compris entre les deux commentaires
"<!--TODUPLICATE-->"
partToDuplicate = s.split("<!--TODUPLICATE-->");
alert(partToDuplicate[1]);
}
</SCRIPT>
</HEAD>
<BODY>
<FORM id="form1">
<!--TODUPLICATE-->
<INPUT type="button" value="Button" id="Button1"> <INPUT type="checkbox"
id="Checkbox1" name="Checkbox1">
<INPUT type="text" id="Text1" name="Text1"><INPUT type="button"
value="Button" id="Button2">
<!--TODUPLICATE-->
</FORM>
<BR>
<BR>
<BR>
<INPUT type="button" value="Duplicate" id="Button3" onclick="Duplicate()">
</BODY>
</HTML>





--
Cordialement,

Sebastien Bovo
Microsoft France
----------
Ce message est fourni en l'état, sans garantie d'aucune sorte, et ne vous
confère aucun droit. Vous assumez tous les risques liés à son utilisation.


"Kalbo" wrote in message
news:
Bonjour,

Je cherche a dupliquer un tableau qui contient des champs (textbox,
listbox,...) à l'intérieur.

Sur ma page html, au niveau du tableau a dupliqué j'ai mis un bouton +. A
chaque clic sur ce bouton il faudrait qu'un deuxième tableau (identique)
se
créé en dessous du premier. Ainsi de suite.

Le problème c'est que je ne vois pas comment écrire une fonction
javascript
qui duplique des morceaux de formulaires.

Merci de votre aide.



Avatar
Georges MAUREL
Bonjour Kalbo,
Je pense à 2 possibilité :
- Créer des balises <div></div> dans lesquelles vous allez mettre vos
tableaux mais en les mettant invisibles. Ensuite à chaque clic vous testez
la visibilité de vos div et vous rendez le 1° div non visible

- Mettre votre formulaire dans des <div> toujours et quand vous cliquez sur
"+" vous reprenez les éléments et vous les insérez avec
object.insertAdjacentHTML(where, text)
where peut avoir la valeur :
- BeforeBegin : Inserts the text immediately before the element
- AfterBegin : Inserts the text after the start of the element but before
all other content in the element
- BeforeEnd : Inserts the text immediately before the end of the element but
after all other content in the element
- AfterEnd : Inserts the text immediately after the end of the element
et text est le contenu html à insérer

Cordialement
Georges MAUREL



"Kalbo" a écrit dans le message de news:

Bonjour,

Je cherche a dupliquer un tableau qui contient des champs (textbox,
listbox,...) à l'intérieur.

Sur ma page html, au niveau du tableau a dupliqué j'ai mis un bouton +. A
chaque clic sur ce bouton il faudrait qu'un deuxième tableau (identique)
se
créé en dessous du premier. Ainsi de suite.

Le problème c'est que je ne vois pas comment écrire une fonction
javascript
qui duplique des morceaux de formulaires.

Merci de votre aide.



Avatar
Kalbo
Merci, je vais essayer.


Bonjour,

Voici un idée de depart :


<HTML>
<HEAD>
<SCRIPT language="javascript">
function Duplicate()
{
var fullText, partToDuplicate;

//On recupere tout le contenu du formulaire
s = document.forms[0].innerHTML;

//On recupere tout le texte compris entre les deux commentaires
"<!--TODUPLICATE-->"
partToDuplicate = s.split("<!--TODUPLICATE-->");
alert(partToDuplicate[1]);
}
</SCRIPT>
</HEAD>
<BODY>
<FORM id="form1">
<!--TODUPLICATE-->
<INPUT type="button" value="Button" id="Button1"> <INPUT type="checkbox"
id="Checkbox1" name="Checkbox1">
<INPUT type="text" id="Text1" name="Text1"><INPUT type="button"
value="Button" id="Button2">
<!--TODUPLICATE-->
</FORM>
<BR>
<BR>
<BR>
<INPUT type="button" value="Duplicate" id="Button3" onclick="Duplicate()">
</BODY>
</HTML>





--
Cordialement,

Sebastien Bovo
Microsoft France
----------
Ce message est fourni en l'état, sans garantie d'aucune sorte, et ne vous
confère aucun droit. Vous assumez tous les risques liés à son utilisation.


"Kalbo" wrote in message
news:
Bonjour,

Je cherche a dupliquer un tableau qui contient des champs (textbox,
listbox,...) à l'intérieur.

Sur ma page html, au niveau du tableau a dupliqué j'ai mis un bouton +. A
chaque clic sur ce bouton il faudrait qu'un deuxième tableau (identique)
se
créé en dessous du premier. Ainsi de suite.

Le problème c'est que je ne vois pas comment écrire une fonction
javascript
qui duplique des morceaux de formulaires.

Merci de votre aide.








Avatar
Kalbo
Bonjour,

Merci à ceux qui m'ont répondu mais j'ai trouvé une méthode encore plus
simple pour dupliquer des parties de mon formulaire.

function DuplicateGroup_onclick(IdToDuplicate)
{
var obj = document.getElementById(IdToDuplicate);
obj.parentElement.insertBefore(obj.cloneNode(true));
}

IdToDuplicate est l'objet du tableau a dupliqué.

Merci.
Kalbo


Bonjour,

Je cherche a dupliquer un tableau qui contient des champs (textbox,
listbox,...) à l'intérieur.

Sur ma page html, au niveau du tableau a dupliqué j'ai mis un bouton +. A
chaque clic sur ce bouton il faudrait qu'un deuxième tableau (identique) se
créé en dessous du premier. Ainsi de suite.

Le problème c'est que je ne vois pas comment écrire une fonction javascript
qui duplique des morceaux de formulaires.

Merci de votre aide.