← Tutti gli articoli
Codice Fiscale Asp.Net Custom Validator Javascript
13 October 2010 ·
Asp.Net · Article ·
536 visite
Codice Fiscale Asp.Net Custom Validator Javascript
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="Scripts/JScript.js" type="text/javascript"></script>
<script src="Scripts/Cf.js" type="text/javascript"></script>
<script type="text/javascript">
function ValidaCodiceFiscale(source, args){
var cf = document.form1.<%= txtCodiceFiscale.ClientID %>.value;
args.IsValid=ControllaCodiceFiscale(cf);
return;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
Codice Fiscale<br />
<asp:TextBox ID="txtCodiceFiscale" MaxLength="16" runat="server"></asp:TextBox>
<asp:CustomValidator ID="CustomValidator1"
runat="server"
ErrorMessage="(*) Attenzione! Il campo Codice Fiscale non � corretto!"
Text="* CF errato"
ForeColor="Red"
ClientValidationFunction="ValidaCodiceFiscale"
ControlToValidate="txtCodiceFiscale"
/>
<br />
<asp:Button ID="btnSubmit" Text="Submit" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
</body>
</html>
function ControllaCodiceFiscale(cf) {
if ((cf == "") || (cf == undefined)) return false;
//tab. caratteri per determinare la posizione nelle tabelle seguenti
var caratt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
//tab. conversione caratteri in posizione pari
var pari = new Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
//tab. conversione caratteri in posizione dispari
var disp = new Array(1, 0, 5, 7, 9, 13, 15, 17, 19, 21, 2, 4, 18, 20, 11, 3, 6, 8, 12, 14, 16, 10, 22, 25, 24, 23, 1, 0, 5, 7, 9, 13, 15, 17, 19, 21);
//tab. conversione caratteri di controllo
var contr = new Array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
var result;
var CF = cf;
dispsum = 0;
for (i = 0; i < 15; i = i + 2) {
c = CF.substr(i, 1);
j = caratt.indexOf(c);
dispsum = dispsum + disp[j];
}
parisum = 0;
for (i = 1; i < 14; i = i + 2) {
c = CF.substr(i, 1);
j = caratt.indexOf(c);
parisum = parisum + pari[j];
}
tots = 0;
tots = parisum + dispsum;
//Prendo il resto della divisione per 26
tots = tots % 26;
if (contr[tots] == CF.substr(15, 1)) {
result = true;
//alert(' Cod. Fisc. CORRETTO!');
}
else {
//alert('Codice Fiscale ERRATO!!');
result = false;
}
var codice = CF.substr(11, 4);
return result;
//event.returnValue=result;
}