[JS] Ajouter du HTML à chaque clic, 5 MAX.

Résolu/Fermé
Kdopj Messages postés 18 Date d'inscription mardi 6 juillet 2010 Statut Membre Dernière intervention 18 mai 2011 - Modifié par Kdopj le 16/05/2011 à 00:16
Kdopj Messages postés 18 Date d'inscription mardi 6 juillet 2010 Statut Membre Dernière intervention 18 mai 2011 - 18 mai 2011 à 23:24
Bonjour,

Je veux faire une multi upload et je veux ajouter un input file à chaque clique sur un lien.

Le code à ajouté est : <p><input style="font-size : 18px;" type="file" name="fichier" size="25" /></p>

A chaque fois que l'on clique je veux que ça ajoute ce code, avec une limitation de 5 max.

Merci
A voir également:

2 réponses

maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
16 mai 2011 à 14:07
<form action="" method="post" id="upload">
<input type="file" name="fichier_1">
</form>
<a href="javascript:void(0);" onclick="ajout();">Ajouter un fichier</a>

<script type="text/javascript">
var num = 1;
function ajout(){
num++;
if(num <= 5){
var form = document.getElementById('upload');
var champ = document.createElement('input');
champ.setAttribute('type','file');
champ.setAttribute('name','fichier_'+num);
form.appendChild(champ);
}else{
alert('limite de fichiers atteinte');
}

}
</script>
3
Kdopj Messages postés 18 Date d'inscription mardi 6 juillet 2010 Statut Membre Dernière intervention 18 mai 2011
16 mai 2011 à 19:10
Merci, ceci ajoute seulement <input type="file" name="fichier_num"> a chaque fois, mais pas les <p> et le style="font-size : 18px;" comment les ajouté ? C'est possible aussi d'ajouter Fichier 1, 2, 3... devant ? Et puis pour le name="" juste mette fichier[] par 1, 2 ,3 ....

Merci
0
Kdopj Messages postés 18 Date d'inscription mardi 6 juillet 2010 Statut Membre Dernière intervention 18 mai 2011
18 mai 2011 à 23:24
Personne ?
0
Camuke Messages postés 224 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 12 août 2011 88
16 mai 2011 à 12:31
Salut,

Voila un petit bout de code qui devrai répondre a ta question:

<html>
	<head>
		<script type="text/javascript">
		    var numFormulaire = 1;
		    function NewForm() {
		        if (numFormulaire < 5) {
		            code = '<p><input style="font-size : 18px;" type="file" name="fichier" size="25" /></p>';
		            document.getElementById("zone").innerHTML += code;
		            numFormulaire++;
		        }
            }
        </script>
	</head>
	<body>
        <a href="javascript:NewForm();">Mon lien</a>
        <form name="monForm" action="" method="post">
           <div id="zone">
              <p><input style="font-size : 18px;" type="file" name="fichier" size="25" /></p>
           </div>
        </form>
	</body>
</html>


Bon courage
-1
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
16 mai 2011 à 14:12
salut

ton code n'est pas bon pour plusieurs raison,
- les 5 champs file auront le même nom
- le fait de faire un innerHTML réinitialise les autres champs
0
Camuke Messages postés 224 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 12 août 2011 88
16 mai 2011 à 14:41
Je savais bien que il y aurai de problème.
Le but n'étant pas forcement de lui donné une solution toute finit mais de lui apporté un élément de réponse.
0