Validare le date con javascript

Posted by Dibi Store Mon, 17 Sep 2007 08:32:00 GMT

Oggi stavo cercando una soluzione efficace per validare l'immissione di date in un form. La data doveva essere scritta nel formato gg/mm/yyyy e il cliente avrebbe preferito che non si potesse ad esempio inserire una data nel formato: 30/02/2007, dove, come si sà, il 30 Febbraio non esiste.

La soluzione che vi riporto qui, è comoda e flessibile, e può essere facilmente adattata alle vostre esigenze. Gli eventuali ringraziamenti vanno fatti a Woosta, un membro di ##javascript, il canale IRC nella rete freenode.

Questo è il codice che vi suggerisco di usare per validare le vostre date:

function valiDate(f){
	var dmy = f.split(/\//);
	var td = new Date( dmy[2], dmy[1]-1, dmy[0] );
	var result = (td.getFullYear() == parseInt(dmy[2],10) && td.getMonth() == parseInt(dmy[1]-1,10) && td.getDate() == parseInt(dmy[0],10));
	if (result == false) {
		alert('Data non valida');
	}
	return result;
}

<form onSubmit="return valiDate(this.elements['date'].value)" action="">

Iniziamo con ordine: la funzione ipotizza che nel nostro form ci sia un campo con name impostato a 'date', da qui prenderà il valore e lo restituisce alla variabile dmy.

Successivamente viene creata una nuova data (notare che per far partire i mesi da 0 è stato necessario scrivere dmy[1]-1).
Infine viene confrontata la data, inserito una condizione che ci avvisa se la data è sbagliata, e ritornato il valore al form: se la data è corretta, il form viene inviato, altrimenti si riceve un avviso che la data è scorretta.

Posted in  | Tags  | no comments

Comments

(leave url/email »)

   Preview comment