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!!!!!