Lieber Felix,
betrachte Ajax-Requests grundsätzlich wie setTimeout-Aufrufe. Du weißt nie, wann sich da was tut.
Deswegen solltest Du nicht einfach davon ausgehen, dass Du innerhalb einer Funktion einfach eine Variable definieren kannst, die am Ende der Funktion nach zwei Ajax-Calls einen Wert hat, der dann zurückgegeben werden kann.
Meiner Meinung nach solltest Du zwei Funktionen benutzen. Die erste ist eine Callback-Funktion, die von den beiden Ajax-Calls mit dem jeweiligen Ergebnis (auch wenn der Call an sich scheitert!) "gefüttert" wird, um dann zu prüfen, ob der gerade eingegangene Ajax-Call bereits der zweite eingetroffene war. In diesem Fall kann diese erste Funktion nämlich die zweite Funktion aufrufen, die das Formular abschickt, oder eben zurückweist.
Der Usability wegen würde ich eine Anzeige einblenden, die dem Benutzer klarmacht, dass da gerade eine Prüfung stattfindet, und das er sich gedulden muss.
Was machst Du, wenn kein JavaScript verfügbar ist?
Liebe Grüße,
Felix Riesterer.
ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)