codice:
<script language="javascript">
<!--// Verifica Partita Iva
function Modulo() {
// Variabili associate ai campi del modulo
var ragione = document.modulo.ragione.value;
var nickname = document.modulo.nickname.value;
var password = document.modulo.password.value;
var conferma = document.modulo.conferma.value;
var citta = document.modulo.citta.value;
var provincia = document.modulo.provincia.value;
var cap = document.modulo.cap.value;
var indirizzo = document.modulo.indirizzo.value;
var telefono = document.modulo.telefono.value;
var email = document.modulo.email.value;
var homepage = document.modulo.homepage.value;
var piva = document.modulo.piva.value;
// Espressione regolare dell'email
var email_reg_exp = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;
//Effettua il controllo sul campo NOME
if ((ragione == "") || (ragione == "undefined")) {
alert("Il campo Nome o Ragione sociale è obbligatorio.");
document.modulo.ragione.focus();
return false;
}
//Effettua il controllo sul campo NICKNAME
else if ((nickname == "") || (nickname == "undefined")) {
alert("Il campo Nickname è obbligatorio.");
document.modulo.nickname.focus();
return false;
}
//Effettua il controllo sul campo PASSWORD
else if ((password == "") || (password == "undefined")) {
alert("Il campo Password è obbligatorio.");
document.modulo.password.focus();
return false;
}
//Effettua il controllo sul campo piva
else if ((isNaN(piva)) || (piva == "") || (piva == "undefined")) {
alert("Il campo Partita IVA è obbligatorio o non è stato immesso correttamente.");
document.modulo.piva.focus();
return false;
}
//Effettua il SECONDO controllo sul campo piva
else if (controllaPIVA(piva) != '')
alert(controllaPIVA(piva));
document.modulo.piva.focus();
return false;
}
//Effettua il controllo sul campo CITTA'
else if ((citta == "") || (citta == "undefined")) {
alert("Il campo Città è obbligatorio.");
document.modulo.citta.focus();
return false;
}
//Effettua il controllo sul campo PROVINCIA
else if ((provincia == "") || (provincia == "undefined")) {
alert("Il campo provincia è obbligatorio.");
document.modulo.citta.focus();
return false;
}
//Effettua il controllo sul campo cap
else if ((isNaN(cap)) || (cap == "") || (cap == "undefined")) {
alert("Il campo CAP è obbligatorio.");
document.modulo.cap.focus();
return false;
}
//Effettua il controllo sul campo CONFERMA PASSWORD
else if ((conferma == "") || (conferma == "undefined")) {
alert("Il campo Conferma password è obbligatorio.");
document.modulo.conferma.focus();
return false;
}
//Verifica l'uguaglianza tra i campi PASSWORD e CONFERMA PASSWORD
else if (password != conferma) {
alert("La password confermata è diversa da quella scelta, controllare.");
document.modulo.conferma.value = "";
document.modulo.conferma.focus();
return false;
}
//Effettua il controllo sul campo INDIRIZZO
else if ((indirizzo == "") || (indirizzo == "undefined")) {
alert("Il campo Indirizzo è obbligatorio.");
document.modulo.indirizzo.focus();
return false;
}
//Effettua il controllo sul campo TELEFONO
else if ((isNaN(telefono)) || (telefono == "") || (telefono == "undefined")) {
alert("Il campo Telefono è numerico ed obbligatorio.");
document.modulo.telefono.value = "";
document.modulo.telefono.focus();
return false;
}
//Effettua il controllo sul campo EMAIL
else if (!email_reg_exp.test(email) || (email == "") || (email == "undefined")) {
alert("Inserire un indirizzo email corretto.");
document.modulo.email.select();
return false;
}
//INVIA IL MODULO
else {
document.modulo.action = "Scriviregistrazione.asp";
document.modulo.submit();
}
}
//-->
function controllaPIVA(pi)
{
if( pi == '' )
return '';
if( pi.length != 11 )
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 "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 "La partita IVA non è valida:\n" +
"il codice di controllo non corrisponde.\n";
return '';
}
</script>
Impostato così mi dà errore nella visualizzazione della pagina
Faccio una domanda da ignorante....ma perchè il secondo controllo controlla la parola (pi) e non piva?