
Originariamente inviata da
vic53
Per conto mio la ACTION del form deve essere impostata solo dopo il controllo... e la funzione controllo se superato esegue il submit con lo script di esecuzione che tu usi nella action in modo fisso cioe qualunque cosa fai nel form se chiami action quella parte...
ok ti posto il codice che ho rifatto e ci studi sopra... naturalmente quando esegui controlloexe.asp che ragione c'è di fare la verifica sui campi dato che l'hai gia fatta sul javascript nel client?
leva le righe di cosice dal file asp che gira sul server e che riguardano i controlli sui campi partitaiva e codicefiscale...
ti allego il file controllo.asp come lo vedo io e ho tolto alcuni errori nella table che hai postato
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>