Unsterblich: Standardauswahl bei confirm

Hallo Ihrs.

Kennt hier jemand eine Möglichkeit, die Standardauswahl beim Confirm auf Abbrechen zu legen?
Normalerweise ist ja ok ausgewählt, heißt wenn jemand z.B. bei "Datensatz wirklich löschen?" unachtsam auf Enter haut, sind die Daten Geschichte. Darum hätte ich hier gerne standardmäßig Abbrechen ausgewählt.
Den Confirmtext umzuschreiben, so das OK abbricht ist keine Option, da das System schon zwei Jahre im Einsatz ist und sicher sehr viele Daten unbeabsichtigt verschwinden würden, weil die Leute die Änderung im Text nicht mitbekommen haben.

Bis dann...

Unsterblich

  1. Moin!

    Normalerweise ist ja ok ausgewählt, heißt wenn jemand z.B. bei "Datensatz wirklich löschen?" unachtsam auf Enter haut, sind die Daten Geschichte. Darum hätte ich hier gerne standardmäßig Abbrechen ausgewählt.
    Den Confirmtext umzuschreiben, so das OK abbricht ist keine Option, da das System schon zwei Jahre im Einsatz ist und sicher sehr viele Daten unbeabsichtigt verschwinden würden, weil die Leute die Änderung im Text nicht mitbekommen haben.

    Das bedeutet dann doch aber, dass alle Leute, die seit 2 Jahren gelernt haben, dass nach Aktivierung des Links nur noch ein kurzes "hauen auf Enter" zum Löschen ausreicht, jetzt umlernen müßten. Die würden ihre Arbeit nicht mehr getan kriegen, wenn ihnen nicht auffällt, dass die beabsichtigte Löschung gerade abgebrochen wurde.

    Wenn du Angst um unabsichtlich gelöschte Datensätze hast, dann darfst du sie nicht löschen, sondern nur als gelöscht markieren, so dass sie in der gewöhnlichen Useransicht nicht mehr auftauchen.

    Diese Änderung würde tatsächlich mehr Sicherheit gegen unabsichtliche Verluste bringen - ganz im Gegensatz zu dem leider nicht realisierbaren Ansatz von dir, den Browsern ein anderes Standardverhalten beizubringen.

    Denn es kann ja auch sein, dass User absichtlich Datensätze löschen, mit bösen Absichten. Dagegen hilft auch kein Umbelegen des Standardfocus im confirm-Feld. Mit nur als gelöscht markierten Datensätzen kann der Admin solche böswilligen Angriffe problemlos wiederherstellen.

    Alternativ könnte man, sofern die Löschung tatsächlich aus Datenmengengründen geschieht, vor der Löschung den kompletten Datensatz in ein letztes Backup oder Lösch-Log schreiben, so dass er archiviert, aber wiederherstellbar bleibt.

    Aber egal wie du es wendest: Alle _vernünftigen_ Ansätze arbeiten nicht an der Benutzeroberfläche, sondern problemlos implementierbar (was zweijährige Anwendererfahrung angeht) in der Datenhaltung.

    - Sven Rautenberg

    --
    "Love your nation - respect the others."
    1. Moin!

      Normalerweise ist ja ok ausgewählt, heißt wenn jemand z.B. bei "Datensatz wirklich löschen?" unachtsam auf Enter haut, sind die Daten Geschichte. Darum hätte ich hier gerne standardmäßig Abbrechen ausgewählt.
      Den Confirmtext umzuschreiben, so das OK abbricht ist keine Option, da das System schon zwei Jahre im Einsatz ist und sicher sehr viele Daten unbeabsichtigt verschwinden würden, weil die Leute die Änderung im Text nicht mitbekommen haben.

      Das bedeutet dann doch aber, dass alle Leute, die seit 2 Jahren gelernt haben, dass nach Aktivierung des Links nur noch ein kurzes "hauen auf Enter" zum Löschen ausreicht, jetzt umlernen müßten. Die würden ihre Arbeit nicht mehr getan kriegen, wenn ihnen nicht auffällt, dass die beabsichtigte Löschung gerade abgebrochen wurde.

      Wenn du Angst um unabsichtlich gelöschte Datensätze hast, dann darfst du sie nicht löschen, sondern nur als gelöscht markieren, so dass sie in der gewöhnlichen Useransicht nicht mehr auftauchen.

      Diese Änderung würde tatsächlich mehr Sicherheit gegen unabsichtliche Verluste bringen - ganz im Gegensatz zu dem leider nicht realisierbaren Ansatz von dir, den Browsern ein anderes Standardverhalten beizubringen.

      Denn es kann ja auch sein, dass User absichtlich Datensätze löschen, mit bösen Absichten. Dagegen hilft auch kein Umbelegen des Standardfocus im confirm-Feld. Mit nur als gelöscht markierten Datensätzen kann der Admin solche böswilligen Angriffe problemlos wiederherstellen.

      Alternativ könnte man, sofern die Löschung tatsächlich aus Datenmengengründen geschieht, vor der Löschung den kompletten Datensatz in ein letztes Backup oder Lösch-Log schreiben, so dass er archiviert, aber wiederherstellbar bleibt.

      Aber egal wie du es wendest: Alle _vernünftigen_ Ansätze arbeiten nicht an der Benutzeroberfläche, sondern problemlos implementierbar (was zweijährige Anwendererfahrung angeht) in der Datenhaltung.

      • Sven Rautenberg

      In diesem speziellen Fall handelt es sich um ein Onlinebrowsergame. Bei der Reise können halt xxx (ich will Euch mal nicht das Forum versauen) verloren gehen, wenn diese nicht ins Fahrzeug passen. Darauf werden die Spieler per confirm aufmerksam gemacht, mit OK bestätigen sie, das sie wirklich reisen wollen. Bei mehr als 40000 angemeldeten Spielern ein Backup für ein Datenfeld beim User eher schlecht zu verwalten. Wir wollen die Verluste ja auch in keinem Fall ersetzen, wollen das nur für die User etwas sicherer machen.

      1. Hallo Unsterblich,

        Bitte beachte, dass du in künftigen Postings TOFU vermeidest. :)

        In diesem speziellen Fall handelt es sich um ein Onlinebrowsergame. Bei der Reise können halt xxx (ich will Euch mal nicht das Forum versauen) verloren gehen, wenn diese nicht ins Fahrzeug passen. Darauf werden die Spieler per confirm aufmerksam gemacht, mit OK bestätigen sie, das sie wirklich reisen wollen. Bei mehr als 40000 angemeldeten Spielern ein Backup für ein Datenfeld beim User eher schlecht zu verwalten. Wir wollen die Verluste ja auch in keinem Fall ersetzen, wollen das nur für die User etwas sicherer machen.

        In diesem Fall würde ich empfehlen, den Standard-Confirm-Dialog einfach normal zu verwenden.
        Du hast damit den Benutzern eine Absicherung gegeben, dass sie zunächst den Dialog betätigen müssen, bevor sie die Aktion durchführen. Wer sie ohne Nachzudenken durchführt ist doch eigentlich selbst schuld - und wird sich daher auch nicht beschweren.

        Grüße

        Marc Reichelt || http://www.marcreichelt.de/

        --
        Linux is like a wigwam - no windows, no gates and an Apache inside!
        Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)
        1. Hallo,

          In diesem Fall würde ich empfehlen, den Standard-Confirm-Dialog einfach normal zu verwenden.

          ... zumal der recht intuitiv ist: Das Drücken der Enter-Taste ist gleichbedeutend mit "OK", das Drücken der Esc-Taste mit "Abbrechen", so wie es die User aus unzähligen Anwendungen gewöhnt sind und wie es in vielen Style Guides empfohlen wird.

          Du hast damit den Benutzern eine Absicherung gegeben, dass sie zunächst den Dialog betätigen müssen, bevor sie die Aktion durchführen. Wer sie ohne Nachzudenken durchführt ist doch eigentlich selbst schuld - und wird sich daher auch nicht beschweren.

          Sehe ich ganz genauso.

          Ciao,
           Martin

          --
          Zum Glück ist alles nur halb so doppelt.
  2. Hallo Unsterblich,

    Kennt hier jemand eine Möglichkeit, die Standardauswahl beim Confirm auf Abbrechen zu legen?
    Normalerweise ist ja ok ausgewählt, heißt wenn jemand z.B. bei "Datensatz wirklich löschen?" unachtsam auf Enter haut, sind die Daten Geschichte. Darum hätte ich hier gerne standardmäßig Abbrechen ausgewählt.
    Den Confirmtext umzuschreiben, so das OK abbricht ist keine Option, da das System schon zwei Jahre im Einsatz ist und sicher sehr viele Daten unbeabsichtigt verschwinden würden, weil die Leute die Änderung im Text nicht mitbekommen haben.

    Da ich keine Möglichkeit kenne, den Standard-Knopf bei confirm umzuändern, würde ich empfehlen, dass du dir selbst einen "confirm"-Dialog baust.
    Hierzu lädst du dynamisch via DOM einen einfach aufgebauten Rahmen in das Dokument und positionierst diesen vor allen anderen.
    Darin befindet sich dann der Text und zwei Buttons, die jeweils den Dialog schließen und die entsprechende Aktion durchführen.

    Grüße

    Marc Reichelt || http://www.marcreichelt.de/

    --
    Linux is like a wigwam - no windows, no gates and an Apache inside!
    Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)
  3. Hi,

    hier eine Lösung, wie Marc sie beschrieben hatte.

    http://www.schudt.eu/Popup/

    Ich habe das Script irgendwann mal geschrieben. Neuerdings nur unter WinXP Firefox 2.0 getestet.

    Eine andere Lösung gibt es nicht. Man kann die confirm Box nicht ändern, auch nicht die Texte. Weil das aber bei uns auch gebraucht wurde, habe ich dieses Skript entwickelt.

    Gruß
    Christian

    1. Hallo Christian,

      hier eine Lösung, wie Marc sie beschrieben hatte.

      http://www.schudt.eu/Popup/

      Ich habe das Script irgendwann mal geschrieben. Neuerdings nur unter WinXP Firefox 2.0 getestet.

      Eine andere Lösung gibt es nicht. Man kann die confirm Box nicht ändern, auch nicht die Texte. Weil das aber bei uns auch gebraucht wurde, habe ich dieses Skript entwickelt.

      Sehr schöne Lösung muss ich sagen - genauso hatte ich das gemeint. Ein Ausgrauen der Webseite bei aufpoppen der Meldung hatte ich auch im Sinn, aber bei deiner Lösung ist dies wirklich toll umgesetzt. :-)

      Grüße

      Marc Reichelt || http://www.marcreichelt.de/

      --
      Linux is like a wigwam - no windows, no gates and an Apache inside!
      Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)
      1. Hallo nochmals Christian,

        ich habe für die Lösung auch gleich einen Verbesserungsvorschlag - du könntest, sobald das Popup erscheint, einen der Buttons mit dem Focus belegen - so kann der Benutzer wie gewohnt mit der Enter-Taste weiternavigieren. :)

        Grüße

        Marc Reichelt || http://www.marcreichelt.de/

        --
        Linux is like a wigwam - no windows, no gates and an Apache inside!
        Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)