J'utilise Dojo Drag and Drop. Lorsqu'un utilisateur ajoute un élément à un conteneur (div dojoType = 'dojo.dnd.Source'), j'ai besoin de récupérer ces données dans un formulaire afin de pouvoir les traiter ultérieurement sur un serveur lorsque l'utilisateur soumet la page entière. Cette partie fonctionne. Ensuite, pour supprimer un élément, je leur permets de glisser/déposer un élément dans un conteneur "poubelle". J'ai du mal à conceptualiser comment retirer l'objet des champs cachés. J'ai déjà un code d'abonnement/événement pour appeler les deux fonctions suivantes.JavaScript RemoveChild logique/question
Pouvez-vous me dire s'il y a une meilleure façon de faire la fonction removeGoalFromHiddenFields? Il peut y avoir plusieurs éléments "subgoal".
Je suis sur le point de commencer les tests avec ce que j'ai ci-dessous, mais j'ai des doutes à ce sujet.
Merci,
Neal Walters
function addGoalToHiddenFields(goalText){
var field = document.createElement("input");
field.setAttribute("type","hidden");
field.setAttribute("value",goalText);
field.setAttribute("name","subgoal");
//add new hidden-element to the existing form
document.getElementById("form1").appendChild(field);
}
function removeGoalFromHiddenFields(goalText){
//remove hidden field
nodes = document.getElementById("form1")
for (i=0;i<nodes.length ;i++)
{
var pos = nodes[i].innerHTML.IndexOf(goalText)
if (pos > 0)
{
nodes.removeChild(node[i]);
}
}
}
Aussi, puis-je faire à la place: nœuds = document.getElementById ("subgoal")
En fait removeGoal ... ne fonctionnerait pas du tout, car le type de retour d'un appel document.getElementById n'a jamais une propriété de longueur (sauf si vous avez de la magie expando qui s'y passe). La boucle for sera toujours cassée. –