cs_darkduck
Messages postés138Date d'inscriptionvendredi 28 février 2003StatutMembreDernière intervention29 février 2008
-
29 févr. 2008 à 09:55
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 2013
-
29 févr. 2008 à 10:36
Bonjour à tous,
J'ai eu beau chercher un petit moment, je n'ai pas trouvé de réponse à ma question.
Voilà mon problème :
J'ajoute dynamiquement des champs input dans un formulaire en utilisant la méthode document.appendChild(...), jusque là aucun problème.
J'ai une fonction javascript qui doit récupérer les valeurs des input. Cela fonctionne pour les champs que j'ai inséré en dur dans mon formulaire.
Cependant ça ne fonctionne pas pour les champs qui ont été ajoutés dynamiquement.
On dirait qu'étant donné que le code source généré concernant les nouveaux champs n'apparait pas dans le code source de la page, javascript ne les voit pas.
cs_darkduck
Messages postés138Date d'inscriptionvendredi 28 février 2003StatutMembreDernière intervention29 février 20081 29 févr. 2008 à 10:29
Désolé en fait c'est moi qui avait fait une erreur !
J'avais un problème de compteur, du coup les champs ne s'appelaient pas correctement.
De plus la valeur num_services n'était pas incrémentée ce qui fait que rien nen fonctionnait.
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 29 févr. 2008 à 10:02
Bonjour,
>>Cependant ça ne fonctionne pas pour les champs qui ont été ajoutés dynamiquement.
aucune raison.... sauf, je dirais, une erreur ?
on peut voir un PETIT extrait ?
tout ce qu'il faut mais le minimum ! sinon ça décourage !
cs_darkduck
Messages postés138Date d'inscriptionvendredi 28 février 2003StatutMembreDernière intervention29 février 20081 29 févr. 2008 à 10:08
var count_services = 0;
function addService()
{
count_services++;
var table = document.getElementById("services-list");
[.......]
//Création d'un champt texte
var input = document.createElement("input");
input.setAttribute("size", 5);
input.setAttribute("type", "text");
input.setAttribute("name", "data[Service"+count_services+"][price]");
input.setAttribute("onkeyup", "getSubTotal(this);");
input.setAttribute("id", "price-"+count_services); //Sert à la récupération de la valeur du champ
[.......]
//Ajout du champ texte
td2.appendChild (input);
[.......]
//Ajout des cellules dans la ligne
tr.appendChild(td1);
tr.appendChild(td2);
//Ajout de la ligne dans le tableau
table.appendChild(tr);
}
Aucun problème avec cette fonction, les champs sont bien ajoutés
function getSubTotal(input)
{
subtotal = 0;
var num_services = document.getElementById("num_services").value;
for(var i=1; i<=num_services; i++)
{
price_field = document.getElementById("price-"+i); //Récupère les champs ajouté en dur dans le code source mais pas ceux ajouté dynamiquement
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 29 févr. 2008 à 10:36
Bonjour,
>>Désolé pour le dérangement
y' pas d'mal....
poser une question, et surtout la mettre en forme ,
fait souvent qu'on résoud seul...
merci de nous l'avoir dit.
<hr /> Cordialement Bul