Eigene confirm-Box: jan11010

Hallo,

ich will vor einem Button-Click den Benutzer bestätigen lassen, dass er den Button auch wirklich drücken will. Dies habe ich biser mit der confirm()-Methode gemacht. Da ich die Confirm-Box aber selbst gestalten will habe ich angefangen eine neu showConfirmation()-Methode zu implementieren.

Diese zeigt ein popup mit einem ok und einem cancel button. Wenn man auf den Ok-Button klickt soll 'true' zurück gegeben werden, bei cancel ein 'false'. Das Problem ist nur, dass sobald das Popup erstellt wurde und die Methode somit fertig ist, ein 'true' zurückgegeben wird.

Jemand eine Idee wie ich das Problem umgehen kann?

Edit: Man müsste die Methode wahrscheinlich irgendwie schlafen lassen, bis ein button gedrückt wurde?

  1. Hi,

    ich will vor einem Button-Click den Benutzer bestätigen lassen, dass er den Button auch wirklich drücken will.

    Das impliziert 2 Dinge:

    1. Du hast hellseherische Fähigkeiten - wie sonst könntest Du die Bestätigung VOR dem Button-Klick machen?

    2. Du hältst die Benutzer Deiner Seiten für blöd. Wenn der Benutzer den Button nicht klicken will, klickt er ihn nicht ...

    Dies habe ich biser mit der confirm()-Methode gemacht.

    Wann hast Du die denn aufgerufen? onclick kommt ja nicht in Frage, onmousebuttondown (oder wie auch immer das Event heißt) oder ähnliches auch nicht. Denn Du willst die Bestätigungsabfrage ja schon vor dem Klick auf den Button haben.

    Diese zeigt ein popup mit einem ok und einem cancel button. Wenn man auf den Ok-Button klickt soll 'true' zurück gegeben werden, bei cancel ein 'false'. Das Problem ist nur, dass sobald das Popup erstellt wurde und die Methode somit fertig ist, ein 'true' zurückgegeben wird.

    Mach nach dem Öffnen nicht sofort mit dem weiter, was auch immer Du da machst.
    Sondern mach das erst, wenn in Deinem Popup auf OK geklickt wurde.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
    1. Hi,

      ich will vor einem Button-Click den Benutzer bestätigen lassen, dass er den Button auch wirklich drücken will.

      Das impliziert 2 Dinge:

      1. Du hast hellseherische Fähigkeiten - wie sonst könntest Du die Bestätigung VOR dem Button-Klick machen?

      2. Du hältst die Benutzer Deiner Seiten für blöd. Wenn der Benutzer den Button nicht klicken will, klickt er ihn nicht ...

      Dies habe ich biser mit der confirm()-Methode gemacht.

      Wann hast Du die denn aufgerufen? onclick kommt ja nicht in Frage, onmousebuttondown (oder wie auch immer das Event heißt) oder ähnliches auch nicht. Denn Du willst die Bestätigungsabfrage ja schon vor dem Klick auf den Button haben.

      im onclick() wird es abgefragt und ein return danach. Die eigentliche Methode wird erst aufgerufen, wenn true zurückgeben wird....

      Diese zeigt ein popup mit einem ok und einem cancel button. Wenn man auf den Ok-Button klickt soll 'true' zurück gegeben werden, bei cancel ein 'false'. Das Problem ist nur, dass sobald das Popup erstellt wurde und die Methode somit fertig ist, ein 'true' zurückgegeben wird.

      Mach nach dem Öffnen nicht sofort mit dem weiter, was auch immer Du da machst.
      Sondern mach das erst, wenn in Deinem Popup auf OK geklickt wurde.

      Wie warte ich denn? Das war ja im Prinzip die frage :)

      cu,
      Andreas

      1. Wie warte ich denn? Das war ja im Prinzip die frage :)

        am einfachsten:

        1. Funktion ruft lediglich PopUp auf und beendet sich

        Button im PopUp ruft 2. Funktion auf, die die gewünschte Aktion auslöst

  2. Nein, Du musst die Methode asynchron erstellen, d.h. sie zeichnet den Button bricht immer ab, es sei denn, eine bestimmte Variable ist gesetzt. Der Button wiederum setzt die betreffende Variable und ruft die Methode, die ihn erstellt hat, noch einmal auf, die dann zu dem gewünschten Ergebnis führt.

    Gruß, LX

    --
    RFC 5984, Satz 7 (Security Considerations) (...) Terroristische Organisationen könnten die "Schlechte Nachrichten verbreiten sich schneller"-Schwachstelle aus RFC 1216 ausnutzen.
    1. Hallo,

      d.h. sie zeichnet den Button bricht immer ab

      äh, wie bitte??

      Ciao,
       Martin

      --
      Noch Fragen? - Ich weiß es auch nicht.
      Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
  3. Am einfachsten wär doch wenn du eine Checkbox neben den Button machst, die man anhakt wenn man sich sicher ist dass mans wirklich will.
    Das hat einen ähnlichen Effekt der Art "ja ich bin mir sicher und will das wirklich" und ist sowohl für dich als auch für den Benutzer am wenigsten Aufwand.

    1. Hi,

      Am einfachsten wär doch wenn du eine Checkbox neben den Button machst, die man anhakt wenn man sich sicher ist dass mans wirklich will.

      Damit verlagerst du vermutlich nur den Wunsch nach einer entsprechenden „Sicherheitsabfrage“ auf den Klick auf die Checkbox :-)

      MfG ChrisB

      --
      RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
      1. Hallo,

        Am einfachsten wär doch wenn du eine Checkbox neben den Button machst, die man anhakt wenn man sich sicher ist dass mans wirklich will.
        Damit verlagerst du vermutlich nur den Wunsch nach einer entsprechenden „Sicherheitsabfrage“ auf den Klick auf die Checkbox :-)

        ja, das stimmt zwar. Aber er erreicht damit immerhin, dass zum endgültigen Ausführen einer Aktion zwei Schritte des Anwenders notwendig sind. Und das käme mir z.B. auch entgegen.

        Ich mag es nämlich auch nicht, wenn durch *einen* Klick auf ein GUI-Element schon eine "endgültige" Aktion ausgelöst wird - das passiert nämlich viel zu leicht auch mal aus Versehen. Ich sehe es daher lieber, wenn erst ein Menü oder ein Dialogfenster aufpoppt. Da habe ich noch die Gelegenheit zum kontrollierten Rückzug, wenn ich dann merke, "huch, das wollte ich doch gar nicht".
        Und das ist auch mit ein Grund, warum ich Symbolleisten in den meisten Anwendungen (auch Browser) nahezu vollständig ausblende und stattdessen schwerpunktmäßig mit Hauptmenüzeile, Kontextmenü und Tastatur-Shortcuts arbeite.

        Vermutlich bin ich mit dieser Ansicht auch wieder in einer Minderheit - aber bestimmt nicht allein.

        So long,
         Martin

        --
        Zwei Dinge sind unendlich: Das Universum und die menschliche Dummheit. Beim Universum bin ich mir aber nicht ganz sicher.
          (Albert Einstein, deutscher Physiker)
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
        1. Hi,

          Ich mag es nämlich auch nicht, wenn durch *einen* Klick auf ein GUI-Element schon eine "endgültige" Aktion ausgelöst wird - das passiert nämlich viel zu leicht auch mal aus Versehen.

          Bei solchen Nerv-Abfragen führt das aber auch dazu, daß die Dinger ungesehen weggeklickt werden - und damit der gewünschte Effekt auch weg ist ...

          cu,
          Andreas

          --
          Warum nennt sich Andreas hier MudGuard?
          O o ostern ...
          Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
          1. Hallo,

            Ich mag es nämlich auch nicht, wenn durch *einen* Klick auf ein GUI-Element schon eine "endgültige" Aktion ausgelöst wird - das passiert nämlich viel zu leicht auch mal aus Versehen.
            Bei solchen Nerv-Abfragen führt das aber auch dazu, daß die Dinger ungesehen weggeklickt werden - und damit der gewünschte Effekt auch weg ist ...

            wenn es nur die berüchtigte "Wollen Sie wirklich ..."-Nachfragen sind, stimme ich dir zu: Die werden oft reflexartig aus dem Rückenmark gesteuert bestätigt.

            Das meinte ich aber nicht. Ich meinte vielmehr Dialogfenster, die mir erlauben, noch Parameter zur beabsichtigten Aktion einzustellen; oder ein Abfragemenü, das mir die Auswahl zwischen mehreren Nuancen der bevorstehenden Aktion erlaubt. Dann gibt es zwar immer noch Leute, die nur wissen, dass sie da abermals auf "OK" klicken müssen und die zusätzlichen Möglichkeiten nie bewusst zur Kenntnis genommen haben. Aber die sollen dann halt halt mit den voreingestellten Standardwerten glücklich werden ...

            Ciao,
             Martin

            --
            Du kannst dem Leben nicht mehr Tage geben.
            Aber dem Tag mehr Leben.
            Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(