Se a qualcuno interessa di seguito riporto la funzione di controllo del codice fiscale, all'indirizzo indicato c'è anche il controllo della partita IVA e tutte le spiegazioni.
Io l'ho richiamato così:
- Code: Select all
form.mainContainer.formContainer.cntCodiceFiscale.codiceFiscale.onChange = function (event)
{
var ret;
ret = form.ValidaCodiceFiscale($codiceFiscale.value);
if (ret !== "") {
//app.alert(ret);
$dmSoggetti.row.setError(ret, $codiceFiscale);
}
};
Ho modificato la parte finale per aggiungere "dovrebbe essere ..."./**
* ringraziando :
http://www.icosaedro.it/cf-pi/ */
App.Soggetti1.prototype.ValidaCodiceFiscale = function (cf)
{
var validi, i, s, set1, set2, setpari, setdisp;
if (cf === '')
return '';
cf = cf.toUpperCase();
if (cf.length != 16)
return "La lunghezza del codice fiscale non è\n"
+ "corretta: il codice fiscale dovrebbe essere lungo\n"
+ "esattamente 16 caratteri.\n";
validi = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
for (i = 0; i < 16; i++) {
if (validi.indexOf(cf.charAt(i)) == -1)
return "Il codice fiscale contiene un carattere non valido `" +
cf.charAt(i) +
"'.\nI caratteri validi sono le lettere e le cifre.\n";
}
set1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
set2 = "ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ";
setpari = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
setdisp = "BAKPLCQDREVOSFTGUHMINJWZYX";
s = 0;
for (i = 1; i <= 13; i += 2)
s += setpari.indexOf(set2.charAt(set1.indexOf(cf.charAt(i))));
for (i = 0; i <= 14; i += 2)
s += setdisp.indexOf(set2.charAt(set1.indexOf(cf.charAt(i))));
if (s % 26 != cf.charCodeAt(15) - 'A'.charCodeAt(0))
return "Il codice fiscale non è corretto:\n" +
"il codice di controllo non corrisponde.\n" +
" dovrebbe essere: " + validi.substr(s % 26, 1);
return "";
};
Ing. Giovanni Poidomani - freelance
saper ascoltare significa possedere, oltre al proprio, il cervello degli altri. (Leonardo da Vinci)