Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Contribuez
Contribuez Proposez vos articles, cours, tutoriels, questions/réponses pour les FAQ, sources et autres ressources pour la rubrique Web ainsi que ses sous-rubriques.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/12/2006, 20h02   #1
Expert Confirmé
 
Avatar de javatwister
 
Homme
danseur
Inscription : août 2003
Messages : 2 667
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Calvados (Basse Normandie)

Informations professionnelles :
Activité : danseur

Informations forums :
Inscription : août 2003
Messages : 2 667
Points : 3 035
Points : 3 035
Par défaut [SRC] ajouter ou supprimer un champ texte

utilitaire classique: proposer un nombre de champs au choix, entre 0 et x.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<script type="text/javascript">
 
var c,c2, ch;
 
// ajouter un champ avec son "name" propre;
function plus(){
c=document.getElementById('cadre');
c2=c.getElementsByTagName('input');
ch=document.createElement('input');
 
ch.setAttribute('type','text');
ch.setAttribute('name','ch'+c2.length);
c.appendChild(ch);
 
document.getElementById('sup').style.display='inline';
}
 
// supprimer le dernier champ;
function moins(){
if(c2.length>0){c.removeChild(c2[c2.length-1])}
if(c2.length==0){document.getElementById('sup').style.display='none'};
}
 
</script>
squelette de formulaire
Code :
1
2
3
4
5
6
7
8
9
<form id="frm" action="">
<div id="cadre" style="margin-left:100px;width:200px">
</div>
 
<p>
<input type="button" value="ajouter un champ" onclick="plus()" />
<input type="button" style="display:none" id="sup" value="supprimer un champ" onclick="moins()" />
</p>
</form>
aperçu: http://javatwist.imingo.net/ajouform.php
javatwister est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2006, 19h36   #2
Membre expérimenté
 
Avatar de FMaz
 
Inscription : mars 2005
Messages : 648
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 648
Points : 527
Points : 527
Très intéressant !

Est-ce que ca fonctionnerait aussi avec des champs pour parcourir et joindre un fichier (car ces champs ont certaine protections des navigateurs (dont FF), et au moment d'ajouter un champ, le contenu des champs précédent se vide :-\ )

J'avais personnellement palié à ce problème en adoptant une structure telle que:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
<div>
  <input />
  <div> 
    <input />
    <div>
      <input />
      <div>
          <!-- Prêt à recevoir le nouveau champ suivant -->
      </div>
    </div>
  </div>
</div>

Seconde question, est-ce que ta méthode à un avantage réel comparativement à une solution telle que:

Code :
1
2
3
 
<div id="nextdiv0"></div>
<input type="button" onclick="AddChamp();" value="Ajouter un champ" />
Code :
1
2
3
4
5
 
var curId=0;
function AddChamp(){
  document.getElementById('nextdiv' + curId).innerHTML = "<input type=\"text\" name=\"nom[]\" /> <div id=\"" + (++curId) + "\"></div>";
}
FMaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2007, 11h42   #3
Invité régulier
 
Inscription : juillet 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 23
Points : 5
Points : 5
Bonjour, je relance ce topic après quelque mois mais il réponds presque à toutes mes attentes alors!!!
Il me manque juste le moyen de récupérer le texte entré dans les différents champs, en fait, je ne comprends pas quel est le nom "propre" de chaque champ. Si quelqu'un peut me répondre, merci!
Dodielapatate est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2007, 12h20   #4
Expert Confirmé
 
Avatar de FremyCompany
 
Étudiant
Inscription : février 2006
Messages : 2 532
Détails du profil
Informations personnelles :
Âge : 20

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2006
Messages : 2 532
Points : 2 903
Points : 2 903
Envoyer un message via MSN à FremyCompany
Apparement, ils ont tous le même nom

Pour les récupérer sous forme de liste :

Code :
var allInputs = document.getElementsByName("theName")
__________________
Fremy
Pour vos développements Web et une navigation agréable, le tout gratuit :
1) IE 8 + IE7Pro (Si vous ne connaissez pas IE7Pro, essayez !)
2) FF 3 + Web Developper Toolbar + AdBlockPlus + FireBug + GreaseMonkey
FremyCompany est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2007, 14h35   #5
Responsable Modération
 
Homme
Inscription : janvier 2007
Messages : 9 314
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : janvier 2007
Messages : 9 314
Points : 15 575
Points : 15 575
Citation:
Envoyé par FremyCompany
Apparement, ils ont tous le même nom
Heu ... non : "ch" suivi d'un compteur

A+
E.Bzz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2007, 15h53   #6
Expert Confirmé
 
Avatar de FremyCompany
 
Étudiant
Inscription : février 2006
Messages : 2 532
Détails du profil
Informations personnelles :
Âge : 20

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2006
Messages : 2 532
Points : 2 903
Points : 2 903
Envoyer un message via MSN à FremyCompany
Ah pardon, oui, je parlais de ma méthode de FMaz, pas celle de JavaTwister, que je n'avais pas vue...
__________________
Fremy
Pour vos développements Web et une navigation agréable, le tout gratuit :
1) IE 8 + IE7Pro (Si vous ne connaissez pas IE7Pro, essayez !)
2) FF 3 + Web Developper Toolbar + AdBlockPlus + FireBug + GreaseMonkey
FremyCompany est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h42.


 
 
 
 
Partenaires

Hébergement Web