Bonjour,
Actuellement je recherche un script Javascript simple pour ajouter/supprimer un champ "input".
Je suis tombé sur un petit script et l'ai un peu réadapté pour commencer avec un seul champ input (et non 3) et j'ai ajouté une suppression :
Si vous testez ce code vous verrez un problème, en supprimant je supprime tout, y compris mon ajout...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 <html> <head> <title>Document sans nom</title> <script> function create_champ(i) { var i2 = i + 1; document.getElementById('champ_'+i).innerHTML = '<input type="file" name="fichier_'+i+'"><a href="javascript:supr_champ('+i+')">Suprimer un champ</a></span>'; <!-- limité à 10 champs envoyé en même temps --> document.getElementById('champ_'+i).innerHTML += (i <= 9) ? '<br /><span id="champ_'+i2+'"><a href="javascript:create_champ('+i2+')">Ajouter un champ</a><br />' : ''; } function supr_champ(i) { var Parent; var Obj = document.getElementById ( 'champ_'+i) ; if( Obj) Parent = Obj.parentNode; if( Parent) Parent.removeChild( Obj); } </script> </head> <body> <form enctype="multipart/form-data" action="index.php?page=image" method="POST"> <input type="file" name="fichier_1" /><br /> <span id="champ_2"><a href="javascript:create_champ(2)">Ajouter un champs</a><br /> </span> </form> </body> </html>
J'ai alors cherché un peu, et je m'en suis inspiré pour pondre ceci :
Là j'ai carrément deux problèmes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 function supr_champ(i) { var Parent; var Obj = document.getElementById ( 'champ_'+i) ; if( Obj) Parent = Obj.parentNode; if( Parent) Obj.removeChild(Obj.childNodes[0]); }
1- il faut appuyer deux fois pour que le champ puis le lien soit supprimé;
2- le nom de champ "disponible" ne diminue pas. En clair j'ai limité le nombre de champ total à dix, hors quand je clic sur ajouter, il ne prend pas en compte le fait que j'ai supprimer un ou plusieurs champs. Néanmoins pour ce dernier problème je pense qu'il y a une solution facile à laquelle je vais déjà m'atteler. Surement une solution en "réécrivant" mon lien d'une manière ou d'une autre.
Partager