← 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;
}


Si è verificato un errore imprevisto. Ricarica

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.