Carissimi,

prima di esporvi il mio "strano caso" di riutilizzo del condice vi premetto che ogni volta che mi imbatto nella validazione dei campi con JS, e nello specifico nel controllo della data, accuso sempre un dolore psico-somatico allo stomaco che mi rende schiavo dei servizi igienici di casa mia.

Detto questo vengo al dunque; grazie agli script di html.it (ho tutti i cd del 2008) sono riuscito alcuni anni fa ad integrare senza grossi problemi un sistema di controlli JS su alcuni mie form.

Ecco un esempio su tutti:

codice:
<script type="text/javascript" language="JavaScript">
<!--
  function Modulo() {

	var n_pratica = document.modulo.n_pratica.value;
	var data_pratica = document.modulo.data_pratica.value;


	if ((isNaN(n_pratica)) || (n_pratica == "undefined")) {
           alert("Il campo N. Pratica puo' contenere solo valori numerici.");
           document.modulo.n_pratica.value = "";
           document.modulo.n_pratica.focus();
           return false;
     }

	else if (data_pratica != ""){

	 if (document.modulo.data_pratica.value.substring(2,3) != "/" || 
           document.modulo.data_pratica.value.substring(5,6) != "/" ||
           isNaN(document.modulo.data_pratica.value.substring(0,2)) ||
           isNaN(document.modulo.data_pratica.value.substring(3,5)) ||
           isNaN(document.modulo.data_pratica.value.substring(6,10))) {
             alert("Inserire Data Pratica in formato gg/mm/aaaa");
             document.modulo.data_pratica.value = "";
             document.modulo.data_pratica.focus();
             return false;
	        }
	        else if (document.modulo.data_pratica.value.substring(0,2) > 31) {
				alert("Impossibile utilizzare un valore superiore a 31 per i giorni");
		        document.modulo.data_pratica.select();
	           return false;
	        }

			else if (document.modulo.data_pratica.value.substring(3,5) > 12) {
				alert("Impossibile utilizzare un valore superiore a 12 per i mesi");
	           document.modulo.data_pratica.value = "";
	           document.modulo.data_pratica.focus();
	           return false;
	        }

			else if (document.modulo.data_pratica.value.substring(6,10) < 1900) {
	           alert("Impossibile utilizzare un valore inferiore a 1900 per l'anno");
		       document.modulo.data_pratica.value = "";
	           document.modulo.data_pratica.focus();
	           return false;
	        }

		}

        else {
           document.modulo.action = "admin.php?p=cerca_pratica";
           document.modulo.submit();  
	

        }

  }
//-->
</script>
						
<form method="POST" name="modulo">
N. Ordine Pratica<input type="text" name="n_pratica" id="n_pratica" value=""/> del <input type="text" name="data_pratica" id="data_pratica" />
			Tecnico di parte<input type="text" name="tecnico" id="tecnico" value="" size="48"/>
            Cognome Utente<input type="text" name="nominativo" id="nominativo" value=""  size="48"/>
<input name="button" type="button" onClick="Modulo()" value="Cerca" class="button">
</form>
Quindi: se il valore del campo data_pratica non rispetta il formato gg/mm/aaaa mi restituirà un alert che mi inviterà a correggere il formato data; se invece il valore è corretto o se il campo risulta vuoto questo script procede al POST dei dati alla pagina "admin.php?p=cerca_pratica".

Riportando lo stesso script in un'altro form invece:
- se il campo contiene un valore errato: restituisce l'alert
- se il campo è vuoto: esegue il POST
- se il campo contiene la data nel formato corretto: cliccando sul tasto (submit) non succede nulla!!!!!