Nelle precedenti lezioni della nostra guida Javascript abbiamo presentato lโoggeto window di Javascript ed il fondamentale metodo open(); in questa lezione proseguiremo il nostro approfondimento su questo fondamentale oggetto approfondendo altri tre metodi davvero importanti attraverso i quali gli sviluppatori possono creare delle finestre di dialogo con le quali interagire con gli utenti.
Il metodo alert()
Attraverso il metodo alert รจ possibile creare delle finestre di avviso (alert box) al cui interno inserire messaggi personalizzati. Lโunica facoltร concessa allโutente รจ di cliccare sul pulsante OK per chiudere la finestra.
Eโ evidente come lo scopo di questo metodo sia, in pratica, quello di fornire dei semplici avvisi agli utenti.
Una caratteristica degli alert box รจ di forzare il browser a togliere il focus dalla finestra: questo vuol dire che lโutente non potrร interagire con altri elementi della pagina sino a quando non avrร chiuso (e si spera letto) la finestra.
La sintassi di alert รจ la seguente:
window.alert('Messaggio...');
o piรน semplicemente:
alert('Messaggio...');
In pratica non รจ necessario anteporre window ad alert, in quanto questi funzionerร ugualmente. Questa caratteristica รจ comune a tutti gli altri metodi presentati in questa lezione.
Vediamo un esempio di alert box scatenato dal click su una immagine:
<script>
function copyright() {
alert("Tramonto in spiaggia\nAutore: Mario Rossi");
}
<script>
<img src="foto.jpg" onclick="copyright()">
Prova il codiceSi noti che per andare a capo allโinterno della finestra di alert abbiamo utilizzato \n, ovvero la notazione per un ritorno a capo fisico (newline).
Il metodo confirm()
Il metodo confirm, in un certo senso, รจ lโevoluzione dellโalert box. Attraverso questo metodo, infatti, viene mostrata allโutente una finestra sostanzialmente identica a quella prodotta dal metodo alert() ma, a differenza di questโultimo, viene lasciata allโutente una scelta se premere su OK o su Annulla.
Attraverso questo metodo, ad esempio, รจ possibile porre allโutente delle richieste di conferma alle quali, ovviamente, potrร rispondere in modo affermativo (OK) oppure no (Annulla). Il metodo confirm restituisce true alla pressione del tasto OK e false alla pressione del tasto Annulla.
Come nel caso di alert, anche confirm toglie il focus alla finestra ed "obbliga" lโutente a rispondere per poter sbloccare le altre funzionalitร della pagina web.
Vediamo un esempio scolastico:
var domanda = confirm("Premi un buttone");
if (domanda === true) {
alert("Hai premuto OK");
}else{
alert("Hai premuto Annulla");
}
Vediamo ora un esempio un poโ piรน pratico:
function cancella(id) {
var domanda = confirm("Sei sicuro di voler cancellare?");
if (domanda === true) {
location.href = 'cancella.php?id='+id;
}else{
alert('Operazione annullata');
}
}
Prova il codiceNel nostro esempio abbiamo creato una semplice funzione per la cancellazione di un record dal database, prima di procedere, perรฒ, chiediamo conferma allโutente. Se questo clicca su OK si effettua un redirect alla pagina di cancellazione, in caso contrario non succede nulla (e mostriamo un semplice avviso).
Il metodo prompt()
Il metodo prompt apre una finestra di dialogo con un campo di testo allโinterno del quale lโutente puรฒ inserire del contenuto. Se lโutente clicca su OK il metodo prompt restituisce il valore inserito, in caso contrario restituisce null.
Questo metodo รจ utilizzato per raccogliere piccole informazioni dallโutente come, ad esempio, il suo nome o lโanno di nascitaโฆ informazioni che saranno poi utilizzate per modellare la pagina che gli verrร mostrata. Vediamo un esempio:
var anno = prompt("In che anno sei nato?", "");
if (anno !== null) {
var dt = new Date();
var anno_corrente = dt.getFullYear();
var eta = (anno_corrente - anno);
if (eta > 18) {
alert("Sei maggiorenne");
}else{
alert("Sei minorenne");
}
}
Prova il codiceCome potete notare il metodo prompt ammette due argomenti: il primo รจ la descrizione di ciรฒ che si chiede allโutente di inserire nella casella di testo mentre il secondo รจ un valore di default (in sostanza la casella di testo apparirร "pre-compilata" con il valore indicato). Esempio:
var paese = prompt("Dove sei nato?", "Italia");
