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

Résolu
Kdopj Messages postés 21 Statut Membre -  
Kdopj Messages postés 21 Statut Membre -
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

2 réponses

  1. maka54 Messages postés 721 Statut Membre 80
     
    <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
    1. Kdopj Messages postés 21 Statut Membre
       
      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
    2. Kdopj Messages postés 21 Statut Membre
       
      Personne ?
      0
  2. Camuke Messages postés 227 Statut Membre 88
     
    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
    1. maka54 Messages postés 721 Statut Membre 80
       
      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
    2. Camuke Messages postés 227 Statut Membre 88
       
      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