Xion Aritel
10-01-2006, 15:16
Salve a tutti!
La funzione è questa:
function Check_Cod_Fisc(Cod_Fisc)
{
var strcognome
strcognome=""
// Processa il cognome
//----------------------------------------------------------------
for (i=0; i<document.MioForm.Cognome.value.length; i++)
{
switch (document.MioForm.Cognome.value.charAt(i))
{
case 'A':
case 'E':
case 'I':
case 'O':
case 'U': break;
default :
if((document.MioForm.Cognome.value.charAt(i)<='Z')&& (document.MioForm.Cognome.value.charAt(i)>'A')) {
strcognome = strcognome + document.MioForm.Cognome.value.charAt(i); }
}
}
if (strcognome.length < 3)
{
for (i=0; i<document.MioForm.Cognome.value.length; i++)
{
switch (document.MioForm.Cognome.value.charAt(i))
{
case 'A':
case 'E':
case 'I':
case 'O':
case 'U': strcognome = strcognome + document.MioForm.Cognome.value.charAt(i);
}
}
if (strcognome.length < 3)
{
for (i=strcognome.length; i<=3; i++)
{ strcognome = strcognome + 'X'; }
}
}
strcognome = strcognome.substring(0,3);
//------------------------------------------------------------
var strnome
strnome=""
// processa il nome
//----------------------------------------------------------------
for (i=0; i<document.MioForm.Nome.value.length; i++)
{
switch (document.MioForm.Nome.value.charAt(i))
{
case 'A':
case 'E':
case 'I':
case 'O':
case 'U': break;
default:
if((document.MioForm.Nome.value.charAt(i)<='Z')&& (document.MioForm.Nome.value.charAt(i)>'A')) {
strnome = strnome + document.MioForm.Nome.value.charAt(i); }
}
}
if (strnome.length > 3)
{
strnome = strnome.substring(0,1) + strnome.substring(2,4);
}
else {
if (strnome.length < 3)
{
for (i=0; i<document.MioForm.Nome.value.length; i++)
{
switch (document.MioForm.Nome.value.charAt(i))
{
case 'A':
case 'E':
case 'I':
case 'O':
case 'U': strnome = strnome + document.MioForm.Nome.value.charAt(i);
}
}
if (strnome.length < 3)
{
for (i=strnome.length; i<=3; i++)
{strnome = strnome + 'X';}
}
}
strnome = strnome.substring(0,3);
}
var strnc
strnc=strcognome+strnome ;
//--------------------------------------- Fine processa nome
var strCod_Fisc
strCod_Fisc = Cod_Fisc
var somma = 0
var chrcontrollo = ' '
var mycod = " "
mycod = strCod_Fisc
for (i=0; i<15; i++)
{
if (((i+1) % 2) != 0) //caratteri dispari
{
switch (mycod.charAt(i))
{
case '0':
case 'A':{ somma += 1; break;}
case '1':
case 'B':{ somma += 0; break;}
case '2':
case 'C':{ somma += 5; break;}
case '3':
case 'D':{ somma += 7; break;}
case '4':
case 'E':{ somma += 9; break;}
case '5':
case 'F':{ somma += 13; break;}
case '6':
case 'G':{ somma += 15; break;}
case '7':
case 'H':{ somma += 17; break;}
case '8':
case 'I':{ somma += 19; break;}
case '9':
case 'J':{ somma += 21; break;}
case 'K':{ somma += 2; break;}
case 'L':{ somma += 4; break;}
case 'M':{ somma += 18; break;}
case 'N':{ somma += 20; break;}
case 'O':{ somma += 11; break;}
case 'P':{ somma += 3; break;}
case 'Q':{ somma += 6; break;}
case 'R':{ somma += 8; break;}
case 'S':{ somma += 12; break;}
case 'T':{ somma += 14; break;}
case 'U':{ somma += 16; break;}
case 'V':{ somma += 10; break;}
case 'W':{ somma += 22; break;}
case 'X':{ somma += 25; break;}
case 'Y':{ somma += 24; break;}
case 'Z':{ somma += 23; break;}
}
}
else //caratteri pari
{
switch (mycod.charAt(i))
{
case '0':
case 'A':{ somma += 0; break;}
case '1':
case 'B':{ somma += 1; break;}
case '2':
case 'C':{ somma += 2; break;}
case '3':
case 'D':{ somma += 3; break;}
case '4':
case 'E':{ somma += 4; break;}
case '5':
case 'F':{ somma += 5; break;}
case '6':
case 'G':{ somma += 6; break;}
case '7':
case 'H':{ somma += 7; break;}
case '8':
case 'I':{ somma += 8; break;}
case '9':
case 'J':{ somma += 9; break;}
case 'K':{ somma += 10; break;}
case 'L':{ somma += 11; break;}
case 'M':{ somma += 12; break;}
case 'N':{ somma += 13; break;}
case 'O':{ somma += 14; break;}
case 'P':{ somma += 15; break;}
case 'Q':{ somma += 16; break;}
case 'R':{ somma += 17; break;}
case 'S':{ somma += 18; break;}
case 'T':{ somma += 19; break;}
case 'U':{ somma += 20; break;}
case 'V':{ somma += 21; break;}
case 'W':{ somma += 22; break;}
case 'X':{ somma += 23; break;}
case 'Y':{ somma += 24; break;}
case 'Z':{ somma += 25; break;}
}
}
}
somma %= 26;
switch (somma)
{
case 0: {chrcontrollo='A'; break;}
case 1: {chrcontrollo='B'; break;}
case 2: {chrcontrollo='C'; break;}
case 3: {chrcontrollo='D'; break;}
case 4: {chrcontrollo='E'; break;}
case 5: {chrcontrollo='F'; break;}
case 6: {chrcontrollo='G'; break;}
case 7: {chrcontrollo='H'; break;}
case 8: {chrcontrollo='I'; break;}
case 9: {chrcontrollo='J'; break;}
case 10: {chrcontrollo='K'; break;}
case 11: {chrcontrollo='L'; break;}
case 12: {chrcontrollo='M'; break;}
case 13: {chrcontrollo='N'; break;}
case 14: {chrcontrollo='O'; break;}
case 15: {chrcontrollo='P'; break;}
case 16: {chrcontrollo='Q'; break;}
case 17: {chrcontrollo='R'; break;}
case 18: {chrcontrollo='S'; break;}
case 19: {chrcontrollo='T'; break;}
case 20: {chrcontrollo='U'; break;}
case 21: {chrcontrollo='V'; break;}
case 22: {chrcontrollo='W'; break;}
case 23: {chrcontrollo='X'; break;}
case 24: {chrcontrollo='Y'; break;}
case 25: {chrcontrollo='Z'; break;}
}
//--------------------------------------------
if (chrcontrollo == mycod.charAt(15)&&(Cod_Fisc.substring(0,6)==strnc))
{
return true;
}
else
{
alert("Codice Fiscale non valido");
// Cod_Fisc.focus();
return false;
}
}
La funzione la chiamo da qui:
<td>
<input type="text" name="CodFisc" maxlength=16 value="" onBlur="if (this.value.length!=0 || this.value!=''){Check_Cod_Fiscale(this.value); return true}">
</td>
L'errore che mi salta fuori è "previsto oggetto".
Sapete aiutarmi a capire perchè?
Domandina (da completo newbie del JS):
il messaggio di errore mi specifica un numero di riga ed un carattere, cosa che (penso) dovrebbe aiutarmi a risolvere più facilmente i problemi. Come vengono calcolate, però, le righe?
Cioè, si conta solo il codice client-side (penso di sì)? Si considerano solo le righe scritte o anche quelle che contengono solo spazi vuoti? Ho provato ad andare alla riga specificata, ma non c'ho trovato niente di strano... :bhò:
Grazie in anticipo a tutti!
EDIT:
Il controllo del codice fiscale lo eseguo solo sul nome e sul cognome perchè solo questi dati ho a disposizione... sempre meglio che non controllarlo affatto...
La funzione è questa:
function Check_Cod_Fisc(Cod_Fisc)
{
var strcognome
strcognome=""
// Processa il cognome
//----------------------------------------------------------------
for (i=0; i<document.MioForm.Cognome.value.length; i++)
{
switch (document.MioForm.Cognome.value.charAt(i))
{
case 'A':
case 'E':
case 'I':
case 'O':
case 'U': break;
default :
if((document.MioForm.Cognome.value.charAt(i)<='Z')&& (document.MioForm.Cognome.value.charAt(i)>'A')) {
strcognome = strcognome + document.MioForm.Cognome.value.charAt(i); }
}
}
if (strcognome.length < 3)
{
for (i=0; i<document.MioForm.Cognome.value.length; i++)
{
switch (document.MioForm.Cognome.value.charAt(i))
{
case 'A':
case 'E':
case 'I':
case 'O':
case 'U': strcognome = strcognome + document.MioForm.Cognome.value.charAt(i);
}
}
if (strcognome.length < 3)
{
for (i=strcognome.length; i<=3; i++)
{ strcognome = strcognome + 'X'; }
}
}
strcognome = strcognome.substring(0,3);
//------------------------------------------------------------
var strnome
strnome=""
// processa il nome
//----------------------------------------------------------------
for (i=0; i<document.MioForm.Nome.value.length; i++)
{
switch (document.MioForm.Nome.value.charAt(i))
{
case 'A':
case 'E':
case 'I':
case 'O':
case 'U': break;
default:
if((document.MioForm.Nome.value.charAt(i)<='Z')&& (document.MioForm.Nome.value.charAt(i)>'A')) {
strnome = strnome + document.MioForm.Nome.value.charAt(i); }
}
}
if (strnome.length > 3)
{
strnome = strnome.substring(0,1) + strnome.substring(2,4);
}
else {
if (strnome.length < 3)
{
for (i=0; i<document.MioForm.Nome.value.length; i++)
{
switch (document.MioForm.Nome.value.charAt(i))
{
case 'A':
case 'E':
case 'I':
case 'O':
case 'U': strnome = strnome + document.MioForm.Nome.value.charAt(i);
}
}
if (strnome.length < 3)
{
for (i=strnome.length; i<=3; i++)
{strnome = strnome + 'X';}
}
}
strnome = strnome.substring(0,3);
}
var strnc
strnc=strcognome+strnome ;
//--------------------------------------- Fine processa nome
var strCod_Fisc
strCod_Fisc = Cod_Fisc
var somma = 0
var chrcontrollo = ' '
var mycod = " "
mycod = strCod_Fisc
for (i=0; i<15; i++)
{
if (((i+1) % 2) != 0) //caratteri dispari
{
switch (mycod.charAt(i))
{
case '0':
case 'A':{ somma += 1; break;}
case '1':
case 'B':{ somma += 0; break;}
case '2':
case 'C':{ somma += 5; break;}
case '3':
case 'D':{ somma += 7; break;}
case '4':
case 'E':{ somma += 9; break;}
case '5':
case 'F':{ somma += 13; break;}
case '6':
case 'G':{ somma += 15; break;}
case '7':
case 'H':{ somma += 17; break;}
case '8':
case 'I':{ somma += 19; break;}
case '9':
case 'J':{ somma += 21; break;}
case 'K':{ somma += 2; break;}
case 'L':{ somma += 4; break;}
case 'M':{ somma += 18; break;}
case 'N':{ somma += 20; break;}
case 'O':{ somma += 11; break;}
case 'P':{ somma += 3; break;}
case 'Q':{ somma += 6; break;}
case 'R':{ somma += 8; break;}
case 'S':{ somma += 12; break;}
case 'T':{ somma += 14; break;}
case 'U':{ somma += 16; break;}
case 'V':{ somma += 10; break;}
case 'W':{ somma += 22; break;}
case 'X':{ somma += 25; break;}
case 'Y':{ somma += 24; break;}
case 'Z':{ somma += 23; break;}
}
}
else //caratteri pari
{
switch (mycod.charAt(i))
{
case '0':
case 'A':{ somma += 0; break;}
case '1':
case 'B':{ somma += 1; break;}
case '2':
case 'C':{ somma += 2; break;}
case '3':
case 'D':{ somma += 3; break;}
case '4':
case 'E':{ somma += 4; break;}
case '5':
case 'F':{ somma += 5; break;}
case '6':
case 'G':{ somma += 6; break;}
case '7':
case 'H':{ somma += 7; break;}
case '8':
case 'I':{ somma += 8; break;}
case '9':
case 'J':{ somma += 9; break;}
case 'K':{ somma += 10; break;}
case 'L':{ somma += 11; break;}
case 'M':{ somma += 12; break;}
case 'N':{ somma += 13; break;}
case 'O':{ somma += 14; break;}
case 'P':{ somma += 15; break;}
case 'Q':{ somma += 16; break;}
case 'R':{ somma += 17; break;}
case 'S':{ somma += 18; break;}
case 'T':{ somma += 19; break;}
case 'U':{ somma += 20; break;}
case 'V':{ somma += 21; break;}
case 'W':{ somma += 22; break;}
case 'X':{ somma += 23; break;}
case 'Y':{ somma += 24; break;}
case 'Z':{ somma += 25; break;}
}
}
}
somma %= 26;
switch (somma)
{
case 0: {chrcontrollo='A'; break;}
case 1: {chrcontrollo='B'; break;}
case 2: {chrcontrollo='C'; break;}
case 3: {chrcontrollo='D'; break;}
case 4: {chrcontrollo='E'; break;}
case 5: {chrcontrollo='F'; break;}
case 6: {chrcontrollo='G'; break;}
case 7: {chrcontrollo='H'; break;}
case 8: {chrcontrollo='I'; break;}
case 9: {chrcontrollo='J'; break;}
case 10: {chrcontrollo='K'; break;}
case 11: {chrcontrollo='L'; break;}
case 12: {chrcontrollo='M'; break;}
case 13: {chrcontrollo='N'; break;}
case 14: {chrcontrollo='O'; break;}
case 15: {chrcontrollo='P'; break;}
case 16: {chrcontrollo='Q'; break;}
case 17: {chrcontrollo='R'; break;}
case 18: {chrcontrollo='S'; break;}
case 19: {chrcontrollo='T'; break;}
case 20: {chrcontrollo='U'; break;}
case 21: {chrcontrollo='V'; break;}
case 22: {chrcontrollo='W'; break;}
case 23: {chrcontrollo='X'; break;}
case 24: {chrcontrollo='Y'; break;}
case 25: {chrcontrollo='Z'; break;}
}
//--------------------------------------------
if (chrcontrollo == mycod.charAt(15)&&(Cod_Fisc.substring(0,6)==strnc))
{
return true;
}
else
{
alert("Codice Fiscale non valido");
// Cod_Fisc.focus();
return false;
}
}
La funzione la chiamo da qui:
<td>
<input type="text" name="CodFisc" maxlength=16 value="" onBlur="if (this.value.length!=0 || this.value!=''){Check_Cod_Fiscale(this.value); return true}">
</td>
L'errore che mi salta fuori è "previsto oggetto".
Sapete aiutarmi a capire perchè?
Domandina (da completo newbie del JS):
il messaggio di errore mi specifica un numero di riga ed un carattere, cosa che (penso) dovrebbe aiutarmi a risolvere più facilmente i problemi. Come vengono calcolate, però, le righe?
Cioè, si conta solo il codice client-side (penso di sì)? Si considerano solo le righe scritte o anche quelle che contengono solo spazi vuoti? Ho provato ad andare alla riga specificata, ma non c'ho trovato niente di strano... :bhò:
Grazie in anticipo a tutti!
EDIT:
Il controllo del codice fiscale lo eseguo solo sul nome e sul cognome perchè solo questi dati ho a disposizione... sempre meglio che non controllarlo affatto...