Gunnar Bittersmann: Dialog schließen mit <form method=dialog>

Einen initial geöffneten Dialog kann man mit einem Button in <form method=dialog> schließen.

Bei einem Popover-Dialog geht das nicht? Oder mache ich was falsch?

🖖 Live long and prosper

--
In our chants of “ICE out now”
Our city’s heart and soul persists
Through broken glass and bloody tears
On the streets of Minneapolis

— Bruce Springsteen, Streets of Minneapolis
  1. Hallo Gunnar,

    ist das jetzt das Rätsel zu Pfingsten oder bist Du noch im Vatertagsrausch?

    Dialog und Popover haben miteinander so viel zu tun wie Java und JavaScript. Ein Popover-Dialog ist - meine ich - in etwa so sinnvoll wie ein Untersee-Flugzeug. Aber ich mag mich ja auch irren und eine Entwicklung übersehen haben.

    Jedenfalls hast Du da einiges an Kraut unter die Rüben gemischt.

    • Entweder öffnest Du ein Popover, oder einen Dialog. Ein Dialog-Element, dass Du mittels Popover-API öffnest, ist ein Popover. Kein Dialog!
    • Die command-Werte für Dialoge heißen show-modal, close und request-close. Die command-Werte für Popovers heißen show-popover, hide-popover und toggle-popover. Gibst Du dem einen die Kommandos des anderen, quittiert das der Browser mit einem stummen Schulterzucken
    • D.h. wenn Du den Dialog per Klick auf das Bild per Command öffnen willst, musst Du einen Button mit einen <img> darin verwenden. <input type="image"> kennt command nicht.
    • Im übrigen sollte jeder, der einen Dialog als Popover öffnet, wegen vorsätzlicher semantischer Konfusion standrechtlich mit der Bratwurst erschossen werden. Um mal meinen damaligen Mathelehrer zu zitieren…
    • Ein Submit-Button (also einer ohne type-Angabe) in einem method="dialog" Form kann submitten, aber nicht kommandieren. Das sagt mir der Browser in der Konsole, wenn ich den Dialog per command="show-modal" öffne. Wenn Du zum Schließen des Dialogs command verwenden willst, dann musst Du entweder type="button" hinzufügen oder das form weglassen. Und das zur Art der Öffnung passende Kommando geben.
    • Einen dialog mit form method="dialog" darin – den Du als Dialog geöffnet hast – kannst Du ohne weitere Attributierung einfach mit einem submit-Button schließen. Dessen value findest Du dann im returnValue-Property des Dialogelements wieder, wenn Du mit JavaScript auf das Schließen reagierst.

    Vielen Dank für dieses Quiz. Das hat mir diese Feinheiten erst so richtig bewusst gemacht.

    Rolf

    --
    sumpsi - posui - obstruxi