• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

dynamisch erzeugte Felder und ihre id

LionIV

New member
Hallo zusammen,
per clone-funktion erzeuge ich durch klick auf auf einen Button neue Eingabefelder, deren IDs durchnummeriert werden.
Jetzt möchte ich aber nach dem change des letzten bestehenden Feldes den neuen Satz Eingabefelder erzeugen lassen, so dass der "Knopfdruck" nicht nötig ist.
per:

Code:
 var feld = document.getElementById("item-0-vorgang");
 
   feld.onchange = function() {
   erzeuge neue id...
    clone die felder ....
  }
funktioniert das mit einer festen id.
Wie aber bekomme ich das mit der zuletzt erzeugten id hin, die ja quasi erst in meiner funktion erzeugt wird.
Kann ich die letzte erzeugte id irgendwie speichern und die obige 0 damit ersetzen?

Ich danke euch für eure Ideen
 
die frage ist, brauchst du die id sonst noch für was anderes?
change soll zwar nicht propagiert werden, mit jquery aber kannst du change auch am übergeordneten element fangen. dann vergleichst du das last-child mit event.target und wenn beides gleich ist fügst du ein neues child ein
 
was meinst du damit, das change nicht propagiert werden soll?

ich brauch die id später noch dazu den value der felder in die DB zu schreiben.
 
Zuletzt bearbeitet:
alsooo,
mit serialize benötige ich die unterschiedlichen IDs der Eingabefleder nicht mehr. Gut so
Per Button clone ich das Form, funktioniert.
ich habe jetzt testweise am letzten Feld im Formular über "onblur" eine Funktion angehängt, funktioniert im Ursprungsformular,
Aber leider nicht in den geklonten Forms, obwohl inspect im Browser auch da onblur anzeigt.
Warum funktioniert das nicht?
Jemand ne Idee?

Mein "vorläufiges" Ziel ist, beim Verlassen des letzten Formularfeldes ein neues Form zu clonen.
 
Aber leider nicht in den geklonten Forms, obwohl inspect im Browser auch da onblur anzeigt.
Warum funktioniert das nicht?
"funktioniert nicht" ist keine Fehlerbeschreibung. Das kann alle möglichen Ursachen haben.

Mein "vorläufiges" Ziel ist, beim Verlassen des letzten Formularfeldes ein neues Form zu clonen.

Sicher dass du ein komplett neues Formular anlegen willst und nicht nur ein neues Formularfeld?
 
alsooo, das klonen funktioniert jetzt im onChange und auch per onChange beim letzten Tabellenfeld(sorry nicht Formular) wird eine neue Tabelle also nicht nur ein Feld, sondern einen kompletten Satz Felder, angelegt.
Bis dahin alles super.
im onchange des letzten Tabellenfeldes habe ich auch das serialize untergebracht, auch das funktioniert und gibt mir nen String über die Inhalte aller Felder zurück.
Das hätte ich aber lieber, zur späteren Speicherung in der DB, in einem Array.
Jemand ne einfache idee?

hier mal die Funktionen:
Code:
 function showValues() {
    var str = $( "form" ).serialize();
    $( "#results" ).text( str );
    // neue Felder erzeugen
     moreFields();

und
Code:
function moreFields() {
  	counter++;
	var newFields = document.getElementById('readroot').cloneNode(true);
	newFields.id = '';
	newFields.style.display = 'block';
	var newField = newFields.childNodes;
	for (var i=0;i<newField.length;i++) {
		var theName = newField[i].name
		if (theName)
			newField[i].name = theName + counter;
	}
	var insertHere = document.getElementById('writeroot');
	insertHere.parentNode.insertBefore(newFields,insertHere);
     pruefeFelder();  
};

jetzt brauche ich noch die Speicherroutineund und eine Validitätsprüfung (pruefeFelder()) der einzelnen Felder
 
Zuletzt bearbeitet:
Zurück
Oben