2016-04-12 12 views
0

Ich mache ein Formular mit dynamischen Elementen mit Javascript. Ich kann hinzufügen, aber ich kann nicht entfernen! Ich kann das Problem nicht lösen. Ich bin verwirrt! :(Entfernen Sie dynamische Element mit Javascript

Mein Code:

<script type="text/javascript"> 
 
//+Element 
 
function addElement(div) { 
 
    var ni = document.getElementById(div); 
 
    var numi = document.getElementById('numVal'); 
 
    var num = (document.getElementById('numVal').value -1)+ 2; 
 
    numi.value = num; 
 
    var newdiv = document.createElement('div'); 
 
    newdiv.setAttribute('id',num); 
 
    var unum="'"+div+"','"+num+"'"; 
 
    newdiv.innerHTML ='<input id="t" type="tel" placeholder="Tel.'+num+'" name="t'+num+1+'"><img id="del" onClick="removeElement('+unum+');" alt="del" src="images/del.gif" />'; 
 
    ni.appendChild(newdiv); 
 
} 
 
//-Element 
 
function removeElement(divNum,div) { 
 
    var d = document.getElementById(div); 
 
    var olddiv = document.getElementById(divNum); 
 
    d.removeChild(olddiv); 
 
} 
 
</script> 
 

 
    <form> 
 
    <input type="hidden" value="0" id="numVal" /> 
 
    <div id="m"> 
 
     <div id="h125"> 
 
      <div class="fb"> 
 
       <input id="t" type="tel" placeholder="Tel."> 
 
       <img id="add" Alt="add" src="images/add.gif" onclick="addElement('h125');" /> 
 
      </div> 
 
     </div> 
 
    </div> 
 
    </form>

Dank

+3

Es ist ein Tippfehler-Mann! 'var olddiv = document.getElementsById (divNum);' –

+0

ty. aber noch nicht arbeiten! –

+0

Was möchten Sie entfernen, eingeben oder ganz "div" mit Label? Sie übergeben 'h125' an alle Ihre 'removeElement' Funktionsaufruf. Außerdem versuchen Sie mehrere Eingaben mit demselben 'id =" t "' hinzuzufügen. – t1m0n

Antwort

1

Ist das, was Sie versuchen zu erreichen? Wenn ja, wenn Sie IDs in removeElement Funktion verwechselt.

//+Element 
 
function addElement(div) { 
 
    var ni = document.getElementById(div); 
 
    var numi = document.getElementById('numVal'); 
 
    var num = (document.getElementById('numVal').value -1)+ 2; 
 
    numi.value = num; 
 
    var newdiv = document.createElement('div'); 
 
    newdiv.setAttribute('id',num); 
 
    var unum="'"+div+"','"+num+"'"; 
 
    newdiv.innerHTML ='<input id="t" type="tel" placeholder="Tel.'+num+'" name="t'+num+1+'"><img id="del" onClick="removeElement('+unum+');" alt="del" src="images/del.gif" />'; 
 
    ni.appendChild(newdiv); 
 
} 
 
//-Element 
 
function removeElement(divNum,div) { 
 
    var d = document.getElementById(divNum); 
 
    var olddiv = document.getElementById(div); 
 
    d.removeChild(olddiv); 
 
}
<form> 
 
    <input type="hidden" value="0" id="numVal" /> 
 
    <div id="m"> 
 
     <div id="h125"> 
 
      <div class="fb"> 
 
       <input id="t" type="tel" placeholder="Tel."> 
 
       <img id="add" Alt="add" src="images/add.gif" onclick="addElement('h125');" /> 
 
      </div> 
 
     </div> 
 
    </div> 
 
    </form>

+0

Vielen Dank. Ich sage nicht viel Glück Weil du erfolgreich bist! –

1

document.getElementsById (divNum); sollte lauten: document.getElementById (divNum);

Sie müssen löschen das 's' nach element. update Sorry, ich habe nicht t t test bevor ich antwortete. Wenn Sie var unum in Ihrer addElement(div)-Funktion deklarieren, haben Sie Ihre Variablennamen zurück. Es sollte lesen var unum="'"+num+"','"+div+"'";

+0

Vielen Dank! –

Verwandte Themen