Pascal: try catch-Stress

Halli Hallo,

ich hab folgendes Problem und hoff mir, dass ihr mir hier ein wenig weiter helfen könnt.

function doSubmit()
{
parent.scrollTo(0, 0);

try {
  var chK = checkboxCheck();
  var chK1 = checkDate();
  if (chK1 == true)
   document.filter.submit();

}
  catch(e){
    document.filter.submit();
    }
}

Obiger Try-Catch-Block will nicht so wirklich. Also zumindest für 2 Objekte. Kurz zum Zweck. Ich muss zwei Objekte auf true überprüfen, bevor das Dokument abgeschickt wird. Die Objekte bekomm ich aber aus unterschiedlichen JSPs und beide Objekte können, müssen aber nicht gleichzeitig existieren. Aus dem Grund hab ich den try Catch-Block benutzt, sprich, wenn die Objekte garnicht existieren (dann wurden die dazugehörigen JSP Seiten nicht benutzt), einfach abschicken, ansonsten überprüfen auf true / false und gegebenfalls abschicken oder Fehler werfen.

Bin echt mit meinem kläglichem Latein am Ende :(

Vielleicht hat hier wer ne Idee, wie ich es schaff, dass ich beide Objekte über try catch abgedeckt bekomm. Einfach nur if(chk1 == true || chK == true) funktioniert nicht ;)

Grüße,

Pascal

  1. function doSubmit()
    {
    parent.scrollTo(0, 0);

    try {
      var chK = checkboxCheck();
      var chK1 = checkDate();
      if (chK1 == true)
       document.filter.submit();

    }
      catch(e){
        document.filter.submit();
        }
    }

    Der Block ist überflüssig. du kannst ohne Probleme beide Bedingungen überprüfen.

    Vielleicht hat hier wer ne Idee, wie ich es schaff, dass ich beide Objekte über try catch abgedeckt bekomm. Einfach nur if(chk1 == true || chK == true) funktioniert nicht ;)

    Doch das funktioniert. Wenn es bei dir nicht funktioniert, musst du dir die Fehlermledung anschauen und was dagegen machen.

    Wobei
    a.) ist filter evtl kein guter Name, evtl. spricht der IE ein anderes Objekt an.
    b.) der Name doSubmit klingt so, als ob du die Funktion mit dem Submit Button aufrufst. Besser wäre es hier die Referenz des Formulares mitzugeben und das steuern ob das Formular abgeschickt werden soll oder nicht im submit Handler zu steueren:

    <form ... onsubmit="return doSubmit(this)";>

    Dann wird das Formular abngeschickt, wenn die Funktion !false zurückgibt. Ausserdem funktioniert das Formular in dem Falle auch ohne JS.

    Struppi.

    --
    Javascript ist toll (Perl auch!)
    1. Hey, danke für die schnelle Antwort.

      Ich brauch doch nen try / catch Block, damit ich abfangen kann, falls ein Objekt nicht existiert. Oder gibts da ne andere Möglichkeit ein Objekt auf Nichtexistenz zu prüfen ?

      Das ist ja mein eigentliches Problem, bevor ich überhaupt ein Objekt auf true/ false überprüfen kann. Mit nur einem Objekt klappt das ja wunderbar. Nur muss ich mittlerweile schon 2 Objekte zuerst auf Existenz überprüfen und danach dann auf true / false.

      Wenn ich deinen Lösungsvorschlag benutzen tu, dann hab ich immer noch das Problem, dass nichtexistierende Objekte nicht abgefangen werden.

      Hab echt keine Idee mehr. Das schlimme ist, ich komm auch nicht auf nen Workaround, weil ich einfach keine andere Möglichkeit sehen tu. Ich MUSS schlichtweg zuerst das Objekt überprüfen, ob es überhaupt existiert, wenn ja, dann noch auf true / false. Wenn es nicht existiert, werden die entsprechenden Snipplets (die JSP-Seiten) nicht benutzt und die anderen Snipplets (die nicht überprüft werden müssen) mit dem ganzen Dokument (filter <--muss so heißen, war leider vorgegeben) abgeschickt.

      Vielleicht hab ich mich vorhin undeutlich ausgedrückt und Du verstehst jetzt besser meine mießliche Lage ^.^

      Pascal

      1. hi,

        Oder gibts da ne andere Möglichkeit ein Objekt auf Nichtexistenz zu prüfen ?

        Redest du jetzt von Javascript-Objekten, und suchst typeof?

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
      2. Ich brauch doch nen try / catch Block, damit ich abfangen kann, falls ein Objekt nicht existiert. Oder gibts da ne andere Möglichkeit ein Objekt auf Nichtexistenz zu prüfen ?

        if(!objekt)
        wenn es deklariert wurde, oder
        if(typeof objekt == 'undefined')
        wenn du nicht weißt ob es deklariert wurde.

        Wenn du ein Objektattribut suchst reicht die erste Variante (es sei denn die Null ist ein gültiger Wert).

        Das ist ja mein eigentliches Problem, bevor ich überhaupt ein Objekt auf true/ false überprüfen kann. Mit nur einem Objekt klappt das ja wunderbar. Nur muss ich mittlerweile schon 2 Objekte zuerst auf Existenz überprüfen und danach dann auf true / false.

        Die kannst du mit und oder (||) und und (&&) verknüpfen, je nachdem was du genau erreichen willst.

        Wenn ich deinen Lösungsvorschlag benutzen tu, dann hab ich immer noch das Problem, dass nichtexistierende Objekte nicht abgefangen werden.

        Doch kannst du, aber du bist in dem Fall sicher das es ein form Objekt gibt, d.h. du kannst auf jeden Fall die zweite Variante benutzen.

        Vielleicht hab ich mich vorhin undeutlich ausgedrückt und Du verstehst jetzt besser meine mießliche Lage ^.^

        verstehen tu ich's schon, aber ich seh anhand deines Codeschipsel kein Problem.
        Aber nochwas, reden wir über JSP also über Java oder über Javascript?

        Struppi.

        --
        Javascript ist toll (Perl auch!)