Ich sitz gerade an folgendem Problem: ich möchte vor dem Absenden eines Formulars das Formular mittels Ajax überprüfen. Dafür muss ich zwei Ajax-Requests senden. [...]
Diese Lösung kann ich in der Praxis natürlich nicht so verwenden. Hat jemand einen besseren Vorschlag? Zur Not müsste ich beide Checks in einen Request verpacken und den dann synchron abschicken, ist aber in meinem Fall ein wenig unelegant.
Sehe ich auch so. Du musst den Ablauf Eventbasiert steuern. Also erst die requests absenden und das Formlar nicht abschicken. Und dann wenn beide Antworten gesendet wurden, entsprechend reagieren. Das ist mit JS auch kein Problem.
In etwa so:
<form (...) onsubmit="return form_submit(this)">
function form_submit(f){
var count = 0;
Ajax.Request(
"/ajax1",
{
method: 'get',
parameters: '',
asynchronous: true,
onComplete: function(e){
if(is_valid && ++count == 2) f.submit();
}
);
Ajax.Request(
"/ajax2",
{
method: 'get',
parameters: '',
asynchronous: true,
onComplete: function(e){
if(is_valid && ++count == 2) f.submit();
}
);
return false;
}
Struppi.