[GELÖST] Javascript greift nicht auf mit Ajax nachgeladenen Inhalt

uvcmd

New member
Guten Tag,

ich habe ein Problem mit einem Registrierungsformular, bzw. mit dessen Elementen, die Javascript benötigen, in Kombination mit Ajax.

Wenn ich das Formular ausfülle, werden, damit die Seite nicht neuladen muss, die Formularfelder per Ajax an den Server geschickt und dort ausgewertet. Als Antwort schickt der Server ein neues Formular mit den entsprechenden Fehlerausgaben, falls welche gemacht wurden und das alte Formular wird mit
Code:
$('#ContainerMitFormular').replaceWith(answer);
ersetzt.

Das funktioniert soweit auch, allerdings funktionieren alle Javascript-Inhalte in #ContainerMitFormular nicht mehr.

Ich habe schon einiges Ausprobiert, aber bis her bin ich zu keiner Lösung gekommen.

Gibt es irgendwelche Ideen, wie ich das Lösen könnte?

MfG. UV
 
Zuletzt bearbeitet von einem Moderator:
Danke für die fixe Antwort. Doch, wie genau soll ich .load() einsetzen?

Ich habe ja schon durch das Ajax-Verfahren die Antwort in der Variable "answer" gespeichert.
Code:
var answer = this.responseText;

Wenn ich allerdings direkt Load auf das PHP-Skript verwende:
Code:
$( "#ContainerMitFormular" ).load( "register.php" );
ergibt das keinen Sinn, da ich in dem Fall keine Formulardaten übermittle und das in dem Fall hinfällig ist.
 
...allerdings funktionieren alle Javascript-Inhalte in #ContainerMitFormular nicht mehr.
Das wird wohl daraqn liegen, dass alle (auf das alte Formular etc.) registrierten Eventlistener nicht mehr gültig sind, weil die ursprünglichen Elemente ja ersetzt wurden und somit nicht mehr existent sind.

Lösung ist evtl. alle Eventlistener nach deinem .replaceWith neu registrieren...
 
ja, das kann auch sein, was verstehst du denn genau unter "allerdings funktionieren alle Javascript-Inhalte in #ContainerMitFormular nicht mehr."?
die bereits registrierten eventhandler im form gehen nicht mehr oder scripte die du (mit) lädst werden nicht ausgeführt?
 
Das ist genau das, was mein Problem gelöst hat. Ich musste zwar ein bisschen tricksen und es ist technisch gesehen bisschen unschön, denke ich, aber es Funktioniert!
Dankesehr :)
 
Zurück
Oben