2010-10-11 7 views
0

J'ai un groupe de zones de saisie et un bouton dans la dernière zone de saisie pour ajouter d'autres zones de saisie. J'ai un problème pour supprimer le bouton lorsque le bouton Ajouter est cliqué.Erreur lors de la suppression de l'élément enfant

http://gist.github.com/621417

Je reçois cette erreur d'essayer de supprimer un élément enfant.

Erreur: exception uncaught: [Exception ... "code d'erreur retourné composant: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIDOMHTMLDivElement.removeChild]" nsresult: "0x80004003 (NS_ERROR_INVALID_POINTER)" emplacement: « cadre JS

Répondre

1

Lorsque vous créez d'abord l'élément addBtn, vous définissez uniquement la propriété

name.

vous devez définir la propriété id ainsi.

ainsi, createCreditBalanceInputs, modifier le code pour inclure cette ligne (addBtn.id = "addBtn";):

var addBtn = document.createElement('input'); 
addBtn.type = 'button'; 
addBtn.style.marginLeft = "20px"; 
addBtn.style.marginTop = "5px"; 
addBtn.name="addBtn"; 
addBtn.id = "addBtn"; 
addBtn.value="Add"; 

Ensuite, vous n'avez pas besoin de créer le bouton à chaque fois. Vous pouvez simplement continuer à l'ajouter et les crochets DOM le retireront automatiquement de sa position précédente. Vous pouvez changer addCreditBalance à ressembler à ceci:

var addButton = document.getElementById('addBtn'); 
/* 
//Add button 
var addBtn = document.createElement('input'); 
addBtn.type = 'button'; 
addBtn.style.marginLeft = "20px"; 
addBtn.style.marginTop = "5px"; 
addBtn.name="addBtn"; 
addBtn.value="Add"; 
addBtn.addEventListener ('click',addCreditBalance,false); 
*/ 
container.appendChild(addButton); 

et supprimez la ligne précédente où vous invoquez l'appel removeChild.

Questions connexes