11548 sujets

JavaScript, DOM et API Web HTML5

Modérateur
Bonjour,

Je récupère dans un tableau les balises <input> d'un formulaire <form name=listform"> de la manière suivante :

var element = new Array(); //Mis en place au début du script pour rendre global
[...]
<input type="texte" name="element[x]" size="60" />

Où x varie de 0 à ... (j'ai vérifié, l'incrémentation mise en place fonctionne bien).
Je récupère la valeur de ces éléments pour les envoyer vers une <textarea> pour ajouter du BBCode :

//Creating the items code to insert
var itListBBCode = '';
for (i in element) {
  var itValue = document.listform.element[ i ].value;
  if (itValue != '') {
    itListBBCode += '[*]' + itValue + '[/*]\n';
  }
}
// Defining the needed values
currentSelection = itListBBCode;
startTag = '[list]\n';
endTag = '[/list]\n';

Le souci est que je ne récupère rien dans itListBBCode je pense qu'il y a un problème dans la ligne var itValue = document.listform.element.value; qui récupère la valeur de chaque input.
Je ne vois vraiment pas comment résoudre ce problème, merci d'avance pour votre aide Smiley smile
Modifié par jojaba (22 Aug 2011 - 14:21)
Modérateur
J'ai trouvé une parade. On peut lister tous les éléments d'un formulaire en utilisant l'objet "elements"...

var itListBBCode = '';
  for (var i=0; i<document.listform.elements.length - 2; i++) {
    var itValue = document.listform.elements[ i ].value; 
    if (itValue != '') { 
      itListBBCode += '[*]' + itValue + '[/*]\n'; 
    }
  }

Cela pourra peut-être servir pour d'autres... Smiley cligne
remarque : je fais - 2 pour le nombre d'éléments à prendre en compta car il fallait ne pas prendre en compte les bouton de soumission de formulaire.
Modifié par jojaba (22 Aug 2011 - 14:21)