
Originariamente inviata da
ElyCucciola
ho usato il tuo script completo come l'hai messo e non funziona perchè mi da errore anche se il codice fiscale è giusto.
E' strano ti posto il codice che ho testato sul mio pc chiamalo ContrCF.asp
codice:
<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>controllo.asp</title>
<script language="javascript">
//**********************************************************//
// funzione di controllo Codice fiscale
//**********************************************************//
function isCodiceFiscale(obj)
{
var nTempNum;
var nAppoNum;
var i;
var szTempCodFisc;
var szLastChar;
var szValued;
var szInValued;
szCodFisc = obj.value;
if (szCodFisc.length<16) return false
if (szCodFisc == "") return false;
else {
szCodFisc =szCodFisc.toUpperCase();
szLastChar = szCodFisc.substr(szCodFisc.length - 1,1);
szTempCodFisc =szCodFisc.substr(0,szCodFisc.length - 1);
nTempNum = 0;
i = 0;
while (true) {
szValued="B1A0KKPPLLC2QQD3RRE4VVOOSSF5TTG6UUH7MMI8NNJ9WWZZYYXX";
// I DISPARI
szInValued=szTempCodFisc.substr(i,1);
nAppoNum = szValued.search(szInValued);
nTempNum = nTempNum + (nAppoNum & 0x7FFE) / 2;
i = i + 1;
if (i>15)
break;
szValued="A0B1C2D3E4F5G6H7I8J9KKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ";
// I PARI
szInValued=szTempCodFisc.substr(i,1);
nAppoNum = szValued.search(szInValued);
nTempNum = nTempNum + (nAppoNum & 0x7FFE) / 2;
i = i + 1;
}
nTempNum = nTempNum % 26; //mod
szValued="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
szValued= szValued.substr(nTempNum, 1);
if (szValued==szLastChar) return true;
else return false;
}
}
//**********************************************************//
// funzione di controllo Partita IVA
//**********************************************************//
function ControllaPIVA(PIVA) {
var pi = PIVA.value;
if (pi == '') return "9";
if (pi.length != 11) return "1";
// return "La lunghezza della partita IVA non è\n" +
// "corretta: la partita IVA dovrebbe essere lunga\n" +
// "esattamente 11 caratteri.\n";
validi = "0123456789";
for (i = 0; i < 11; i++) {
if (validi.indexOf(pi.charAt(i)) == -1)
return "2";
// return "La partita IVA contiene un carattere non valido `" +
// pi.charAt(i) + "'.\nI caratteri validi sono le cifre.\n";
}
s = 0;
for (i = 0; i <= 9; i += 2)
s += pi.charCodeAt(i) - '0'.charCodeAt(0);
for (i = 1; i <= 9; i += 2) {
c = 2 * (pi.charCodeAt(i) - '0'.charCodeAt(0));
if (c > 9) c = c - 9;
s += c;
}
if ((10 - s % 10) % 10 != pi.charCodeAt(10) - '0'.charCodeAt(0))
return "3";
// return "La partita IVA non è valida:\n" +
// "il codice di controllo non corrisponde.\n";
return '0';
}
function ControlloCampi(){
// ** controllo codice fiscale...
if ((partitaiva.value=="")&&(codicefiscale.value=="")) {
alert("codice fiscale oppure partita IVA mancante ...");
document.getElementById("codicefiscale").focus();
// return false; // se attivato blocca il salvataggio
}
if (!isCodiceFiscale(codicefiscale)) {
if (partitaiva.value=="") {
alert("codice fiscale errato ...");
document.getElementById("codicefiscale").focus();
return false;
}
}
if (partitaiva.value!="") {
var PIVA = partitaiva;
var swerr = ControllaPIVA(PIVA);
if (!((swerr==0)||(swerr=="9"))) {
alert("partita IVA errata ...");
document.getElementById("partitaiva").focus();
return false;
}
}
// se ha superato i controlli invia il modulo per inserire la scheda cliente
InvioModulo();
}
function InvioModulo() {
alert("i campi hanno superato il test...premi ok e invio il modulo");
document.form1.action="controlloexe.asp";
document.form1.submit();
return true;
}
</script>
<style type="text/css">
.auto-style1 {
text-align: right;
color:white;
}
</style>
</head>
<body>
<form method="post" action="" name="form1">
<table width="533" border="0" >
<tr>
<td width="166" height="19" bgcolor="#849AB5" class="auto-style1">Codice fiscale </td>
<td><input name="codicefiscale" id="codicefiscale" size="25" style="width: 280px" />
</td>
</tr>
<tr>
<td width="166" height="19" bgcolor="#849AB5" class="auto-style1">Partita iva </td>
<td><input name="partitaiva" id="partitaiva" size="40"></td>
</tr>
<input type="button" onclick="ControlloCampi()" value="Controllo" />
</table>
</form>
</body>
</html>
e riprova...