opsss, la tua domanda è una risposta indiretta alla mia. I valori venivano passati come stringhe. Ecco perchè non passava per i case.

Grazie per controllo della data. Ho usato quel popò di roba perchè sono ancora alle prime armi e devo presentare il mio lavoro al corso, quindi per il momento è meglio che inserisca codici da me elaborati (nel caso mi chiedano di spiegarli), ma me lo sono comunque salvato, ci darò un'occhiata questo week end . Però...a proposito del tuo codice, come lo fai il controllo dell'anno bisestile?

Comunque adesso il form funziona.
Ho solo due piccole cose da sistemare. E se sei daccordo, mi servirebbe il tuo consiglio.

1 Devo controllare che all'interno di un campo stringa inserito dall'utente non siano presenti certi caratteri.
Ho scritto questo codice...ma non funziona :master:
Cosa consigli?

codice:
	function check(name, surname, day, month, year, phone, email) {
	  //CHARACTERS THAT DOESN'T LIKE
	  var notValid = "\,|,!,£,$,%,&,/,(,),=,?,^,<,>,[,],{,},°,#,§"

	  //SEQUENCE TO CHECK ANY ERRORS SUBMITED BY THE USER
	  if (name=="" || name.indexOf(notValid)!=-1) {
	    error_msg("error_name");
		return false;
2 problema
Adesso lo scwitch mi funziona.
Però lo switch si trova dentro un else ed è seguito da una chiamata ad una funzione pop up.
} else {
switch(){
}
chiamata alla funzione
}
Quello che vorrei fare è ritornare un valore booleano da switch che mi permetta di creare una condizione che nel caso true mi chiami la funzione.

Troppo incasinato??
codice:
 }
	  else {
	    //CHECK IF THE DAY VALUE IS CORRECT DEPENDING BY THE YEAR
		switch (month) {
		case "01":
		case "03":
		case "05":
		case "07":
		case "08":
		case "10":
		case "12": if (checkNum(1,day,31)==false) error_msg("error_date"); break;
		case "04":
		case "06":
		case "09":
		case "11": if (!checkNum(1,day,30)) error_msg("error_date"); break;
		case "02":  if (bisestile(year)) {
		           if (!checkNum(1,day,29)) error_msg("error_date"); break;
				 } else {
				   if (!checkNum(1,day,28)) error_msg("error_date"); break;
				 }
		default: error_msg("error_date"); break;
	    }
		openPopUp(name, surname, day, month, year, phone, email);
	  }
Così come l'ho fatta sia che entra nel case e trova break o che esca mi apre sempre la popup.