Hallo Michael,
Zu: Tipp geben, wie ich den Reset ordentlich durchführen kann.
Visforms hat keinen eigenen Code, um die Eingabe-Felder zurückzusetzen.
Das Zurücksetzen der Eingabe-Felder erfolgt allein durch Klick auf einen beliebigen HTML-Button mit dem richtigen Typ.
Code:
<input type="reset" ...>
Um das Formular durch JavaScript zurückzusetzen, reicht es aus auf dem Formular-Objekt die Funktion 'reset()' auszuführen, was du ja in dem JavaScript Code an einer Stelle durchführst.
Warum es zu 'Loops' kommt, kann ich anhand deines JavaScript-Ausschnittes allein nicht mit Sicherheit sagen.
'Loops' zu finden erfordert oft die Kenntnis und Untersuchung des gesamten Vorgangs.
Mir fällt allerdings auf, dass du ein 'form[0].reset()' durchführst und gleichzeitige auch Änderung an Formular-Feldern.
Das könnte durchaus zu Problemen führen.
Vielleicht reicht es aus und würde bereits den 'Loop' beheben, wenn du ausschließlich den form[0].reset() durchführst.
Manche Arten von 'Loops' und Blockierungen können durch die Nutzung eines asynchronen Aufrufs gelöst werden.
Wenn du ein 'form[0].reset()' durchführst und gleichzeitige auch Änderung an Formular-Feldern, könntest du den einen Teil davon asynchron ablaufen lassen.
Ich würde in dieser Situation die Änderung an Formular-Feldern in den asynchronen Aufruf verpacken.
Die 'Bitte Warten' Funktion setTimeout() ist eine einfache asynchrone Funktion, die dazu verwendet werden kann.
Sie wird oft allein deswegen eingesetzt und nicht wirklich, weil da etwa gewartet werden müsste.
Code:
console.log("HELLO");
window.setTimeout(function(){
console.log("THIS IS");
}, 2000);
console.log("DOG");
Der Code gibt Folgendes in der Konsole aus:
HELLO
DOG
THIS IS
Liebe Grüße, Ingmar