2010-11-21 5 views
0

jemand bitte helfen Sie mir über JavaScript eingefügt wurde, wie neue Funktion hinzuzufügen, um das Feld zu entfernen, ich habe Funktion js Skript, das neue Feld hinzufügen, wieWie Eingabefeld zu entfernen, die

<script language="javascript"> 
fields = 0; 
function addInput() { 
    if (fields != 10) { 
     var htmlText = "&nbsp;&nbsp;<input type='text' name='friends[]' value='' size='auto' maxlength='45' /><br />"; 
     var newElement = document.createElement('div'); 
     newElement.id = 'new_field'; 
     newElement.innerHTML = htmlText; 

     var fieldsArea = document.getElementById('new_field'); 
     fieldsArea.appendChild(newElement); 
     fields += 1; 

    } else { 
     alert("Only 10 fields allowed."); 
     document.form.add.disabled=true; 
    } 
} 
</script> 

folgt, aber ich brauche einige hilft um neue Funktionen hinzuzufügen, um Feld zu entfernen, Für jeden Vorschlag und Zeiger würde ich schätzen.

+0

wenn Sie einige Ids auf die „div“ hinzufügen wird es easyer sein, um sie für die Entfernung zu erhalten. – Bakudan

+0

Sie können nicht 'newElement.id = 'new_field';' haben, da jede ID auf der Seite eindeutig sein muss. Fügen Sie etwas hinzu, das für Ihre ID eindeutig ist. Ich schlage etwas wie folgt vor: Deklariere außerhalb der Funktion eine Variable count = 0; jedes Mal, wenn Sie eine neue Eingabezahl hinzufügen ++; 'newElement.id = 'new_field' + count' – cristian

+0

Netter Vorschlag Octopus-Paul, na ich ersetze: newElement.id = 'new_field'; mit: newElement.id = 'new_field' + (fields + 1);, das funktioniert auch bei den meisten Browsern außer IE, aber ich bin mir nicht sicher, ob ich richtig war, brauche mehr Zeiger, Vielen Dank – jones

Antwort

0

Zunächst einmal ist es schon ein Problem, das ich mit Ihrem Code zu sehen. Sie legen die ID jedes neuen Felds auf denselben Wert fest, was ein ungültiger HTML-Code ist und nach Problemen fragt. Stellen Sie sicher, das zu beheben.

Die .removeChild method von DOM-Elementen ist was Sie wollen. .removeChild entfernt einen Knoten (Element oder Text) nur dann aus der DOM-Struktur (dem Satz von Elementen, die tatsächlich in dem Dokument enthalten sind), wenn der übergebene Knoten tatsächlich ein Kind dieses Elements ist, andernfalls tritt ein Fehler auf.

Sie können ganz einfach das letzte Feld entfernen, indem das last child seines Behälters zu finden:

function removeLastField() { 
    var fieldsArea = document.getElementById('new_field'), 
     lastChild = fieldsArea.lastChild; 
    if(lastChild) { 
     fieldsArea.removeChild(lastChild); 
     fields -= 1; 
    } 
} 
+0

Hallo idealmachine, ich habe deine Erklärung, aber scheint noch nicht arbeiten, ID auf eindeutige ID setzen, ich war versuchen, ersetzen: ewElement.id = 'new_field'; mit: newElement.id = 'neues_Feld' + 1; das richtig? Bitte zögern Sie nicht, weitere Vorschläge zu machen, und Danke im Voraus – jones

+0

Es ist nicht korrekt, 'newElement.id = 'new_field' + 1' zu setzen, da alle IDs new_field1 sind. Ihre IDs sollten etwas wie new_field1, new_field2 .... sein. – cristian

Verwandte Themen