Also ich hab es jetzt wie folgt gelöst:
1. Ein
onChange in einem Eingabefeld startet eine Fehlerprüfung
validateFields();
2. Ein
ajaxRequestCounter wird bei jedem Ajax Aufruf hochgezäht und bei einem
onComplete wieder runtergezählt.
3. Ein
errorState wird zu Begin der Prüfung auch 0 gesetzt, tritt während der Prüfung ein Fehler auf, wird dieser auf 1 gesetzt.
Ein Funktion checkErrorState() prüft alle 3 Sekunden die beiden Variablen
ajaxRequestCounter und
errorState ab. Wenn
ajaxRequestCounter!=0 ist, wird nix verändert da die Prüfung noch läuft. Wenn der
ajaxRequestCounter=0 ist, wird der Button je nach Wert von
errorState eingestellt.
Das läuft soweit stabil, asynchron und vermeidet unbeabsichtigtes "springen" der Buttons.
Danke für alle Beiträge!
Frank