Wewe: Mootools Request

Beitrag lesen

Dort selektiere ich mir dann per id ein HTML-Element und rufe ne JS-Funktion auf, die mir verschiedene Events auf das Element legt. Diese Funktion soll aber gar nicht aufgerufen werden wenn der Request false zurückgibt.

Im Moment würdest du im onSuccess-Fall quasi Folgendes machen (wenn es denn funktionieren würde, was es wegen der Asynchronität nicht tut)):

onSuccess:
   return true;

variable = onSuccess()
if variable then
   funktion()

Zusammengefasst:

if true then
   funktion()

Die if-Geschichte ist so gesehen vollkommen unsinnig; das Ergebnis true bzw. die Bedingung für dein if hast du bereits alleine dadurch, dass onSuccess aufgerufen wird – und deshalb gehört deine Funktion auch genau da rein, in das onSuccess-Ereignis:

onSuccess:
   Funktion()

Du musst nicht in onSuccess eine Extra-Variable mit true (bzw. dem HTML-Code aus dem AJAX-Aufruf) füllen, nur, um diese gleich darauf zu prüfen und die Funktion aufzurufen.

In deinem Kontext sieht das ungefähr so aus:

if($chk($('availbility_check'))){
get_availability("text")
}

var get_availability = function(option){
        var sendstring = 'herstellernummer1='+herstellernummer1+'&brandNo='+brandNo;

var req = new Request({url:'html/avail.php',methode:'post',
                onSuccess: function(html){

!!!                              if(html.contains('_none') || html.contains('_half')){
!!!                                 set_avail_check_events();
!!!                              }

}
        });
        req.send(sendstring);
});

Der Name get_availability() ist jetzt natürlich irreführend, die Funktion holt nichts mehr, sie lässt eine Aktion im Erfolgsfall ausführen.