Ce face dialog.showModal / show / close
showModal() afișează un <dialog> deasupra paginii, cu fundalul blocat (stilizat cu ::backdrop) și focusul prins în interior; Esc îl închide. show() îl afișează fără să blocheze pagina.
close(valoare) îl închide și setează dialog.returnValue. Un formular cu method="dialog" din interior închide dialogul automat, iar returnValue devine valoarea butonului apăsat. Evenimentul close anunță închiderea.
Parametri
| Parametru | Descriere |
|---|---|
valoareReturnata |
Opțional, la close: textul pus în returnValue. |
Ce returnează
undefined.
Exemple
Exemplul 1: Confirmarea ștergerii
Rezultatul după un clic pe „Șterge”.
<dialog id="confirmare">
<form method="dialog">
<p>Ștergi definitiv articolul?</p>
<button value="nu">Renunță</button>
<button value="da">Șterge</button>
</form>
</dialog>
<script>
const dialog = document.getElementById("confirmare");
dialog.addEventListener("close", () => console.log("răspuns:", dialog.returnValue));
dialog.showModal();
console.log(dialog.open);
</script>
Rezultat în browser
true
răspuns: da
Greșeli frecvente
- Construiești ferestre modale din
div-uri și uiți de tastatură și cititoarele de ecran.<dialog>cushowModal()le rezolvă singur. - Apelezi
showModal()pe un dialog deja deschis cushow()și primeștiInvalidStateError.
Comenzi înrudite
confirm: Pune o întrebare cu butoanele OK și Anulează și returnează true sau false.showPopover / hidePopover / togglePopover: Afișează și ascunde din JavaScript un element cu atributul popover (meniuri, ferestre mici, sfaturi).HTMLElement.focus / blur: Mută focusul tastaturii pe un element (focus) sau îl scoate de pe el (blur).