Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: Codice Fiscale

  1. #1

    Codice Fiscale

    Salve.....

    volevo sapere se c'era uno script che mi faceva un controllo su un inserimento dati.
    Fin qui tutto semplice......
    Ecco la cosa bella:
    Il dato che l'utente deve inserire è il proprio CODICE FISCALE.
    Io adesso faccio solo un controllo sulla lunghezza: se i caratteri inseriti sono di numero diverso da 16 ho una alert che mi indica che il codice è sbagliato, ma questo è poco professionale e si elude facilmente perche se io mi chimo ROSSI FABIO ECC........ se scrivo RSSRSS.... oppure AAAAAA...... per lo script è la stessa cosa.
    Come posso fare??????????

    Si accettano suggerimenti
    o
    direttamente lo script di controllo

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Fai una ricerca nel forum (bottoncino il alto a dx): ci sono un paio di risposte al proposito, con codice sia per la verifica che per il calcolo (per quest'ultimo pero` hai necessita` di avere accesso al database dei comuni).

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Ciao Mr. Fabio,

    io di solito uso questa funzioncina
    codice:
    function CheckCodiceFiscale(cfins){
       var cf = cfins.toUpperCase();
       var cfReg = /^[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]$/;
       if (!cfReg.test(cf))
          return false;
       var set1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
       var set2 = "ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ";
       var setpari = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
       var setdisp = "BAKPLCQDREVOSFTGUHMINJWZYX";
       var s = 0;
       for( i = 1; i <= 13; i += 2 )
          s += setpari.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) )));
       for( i = 0; i <= 14; i += 2 )
          s += setdisp.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) )));
       if ( s%26 != cf.charCodeAt(15)-'A'.charCodeAt(0) )
          return false;
       return true;
    }
    questa controlla che sia un codicefiscale corretto.

    Se vuoi controllare che il codice fiscale sia proprio quello dell'utente dovresti avere una funzione a cui passi tutti i dati e un database dei codici per il comune di nascita


  4. #4

  5. #5
    grazie ragazzi.............

  6. #6
    codice:
    function CheckCodiceFiscale(cfins){
       var cf = cfins.toUpperCase();
       var cfReg = /^[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]$/;
       if (!cfReg.test(cf))
          return false;
       var set1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
       var set2 = "ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ";
       var setpari = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
       var setdisp = "BAKPLCQDREVOSFTGUHMINJWZYX";
       var s = 0;
       for( i = 1; i <= 13; i += 2 )
          s += setpari.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) )));
       for( i = 0; i <= 14; i += 2 )
          s += setdisp.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) )));
       if ( s%26 != cf.charCodeAt(15)-'A'.charCodeAt(0) )
          return false;
       return true;
    }

    *****************
    COME LO INTEGRO A QUESTO CONTROLLO CHE HO PER IL MOMENTO?
    GRAZIEEEEEE
    *****************


    codice:
    <SCRIPT  language="JavaScript">
    
    function CheckForm () { 
    
    	//Initialise variables
    	var errorMsg = "";
    	
    	if (document.frmEnquiry.cognome.value == ""){
    		errorMsg += "\nInserire Cognome";
    	}
    	 
    	if (document.frmEnquiry.nome.value == ""){
    		errorMsg += "\nInserire Nome";	
    	}
    	
    	if ((document.frmEnquiry.cod_fisc.value.length < 16)|| (document.frmEnquiry.cognome.value == "")){
    		errorMsg += "\nCodice Fiscale non valido";	
    	}
    
    	
    	if (!frmEnquiry.acc[0].checked){
    		errorMsg += "\nAutorizzazione al trattamento dei dati (L. 675/96)";	
    	}
    	
    	if (!frmEnquiry.acc_01[0].checked){
    		errorMsg += "\nArt. 26 Legge 15/68,";	
    	}
    
    	if (errorMsg != ""){
    				
    		msg = "I seguenti campi devono essere compilati:\n";
    		msg += "__________________________________\n";
    		
    		
    		errorMsg += alert(msg + errorMsg + "\n");
    		return false;
    	}
    	
    	return true;
    }
    // -->
      </script>

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    La cosa piu` semplice e lineare mi pare sostituire il return true della CheckForm() con la chiamata al controllo del CF:

    if (errorMsg != ""){

    msg = "I seguenti campi devono essere compilati:\n";
    msg += "__________________________________\n";


    errorMsg += alert(msg + errorMsg + "\n");
    return false;
    }

    CheckCodiceFiscale(document.frmEnquiry.cod_fisc.va lue);
    }

    Poi se vuoi fare il raffinato, puoi anche cambiare l'ordine dei controlli, oppure inserire la chiamata al checkCF dentro la routine (ma questo puoi farlo quando hai imaprato qualche cosa in + di JS).

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  8. #8
    codice:
    ........
    </head>
    <script>
    function CheckCodiceFiscale(cfins){
       var cf = cfins.toUpperCase();
       var cfReg = /^[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]$/;
       if (!cfReg.test(cf))
          return false;
       var set1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
       var set2 = "ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ";
       var setpari = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
       var setdisp = "BAKPLCQDREVOSFTGUHMINJWZYX";
       var s = 0;
       for( i = 1; i <= 13; i += 2 )
          s += setpari.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) )));
       for( i = 0; i <= 14; i += 2 )
          s += setdisp.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) )));
       if ( s%26 != cf.charCodeAt(15)-'A'.charCodeAt(0) )
          return false;
    	return true;
    }
    
    </script>
    
    <SCRIPT  language="JavaScript">
    
    function CheckForm () { 
    
    	//Initialise variables
    	var errorMsg = "";
    	
    	if (document.frmEnquiry.cognome.value == ""){
    		errorMsg += "\nInserire Cognome";
    	}
    	 
    	if (document.frmEnquiry.nome.value == ""){
    		errorMsg += "\nInserire Nome";	
    	}
    	
    	if ((document.frmEnquiry.cod_fisc.value.length < 16)|| (document.frmEnquiry.cognome.value == "")){
    		errorMsg += "\nCodice Fiscale non valido";	
    	}
    
    	
    	if (!frmEnquiry.acc[0].checked){
    		errorMsg += "\nAutorizzazione al trattamento dei dati (L. 675/96)";	
    	}
    	
    	if (!frmEnquiry.acc_01[0].checked){
    		errorMsg += "\nArt. 26 Legge 15/68,";	
    	}
    
    	if (errorMsg != ""){
    				
    		msg = "I seguenti campi devono essere compilati:\n";
    		msg += "__________________________________\n";
    		
    		
    		errorMsg += alert(msg + errorMsg + "\n");
    		return false;
    	}
    	
    	
    	CheckCodiceFiscale(document.frmEnquiry.cod_fisc.value); 
    }
    // -->
    </script>
    
    <body>
    ...........
    NON MI FUNZIONA ..........l'unico controlla che mi fa è il mio (la lunghezza della stringa)

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    IL controllo del CF lo fa solo se tutto il resto e` ok.

    Comunque prova ad inserire degli alert per vedere dove si blocca:

    function CheckCodiceFiscale(cfins){
    var cf = cfins.toUpperCase();
    alert("sto per controllare "+cf);
    ...
    ....
    }
    alert("tutto a posto: oraq passo al controllo del CF");
    CheckCodiceFiscale(document.frmEnquiry.cod_fisc.va lue);
    }

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  10. #10
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    codice:
    function CheckForm () { 
    
    	//Initialise variables
    	var errorMsg = "";
    	
    	if (document.frmEnquiry.cognome.value == ""){
    		errorMsg += "\nInserire Cognome";
    	}
    	 
    	if (document.frmEnquiry.nome.value == ""){
    		errorMsg += "\nInserire Nome";	
    	}
    	
    	if ((document.frmEnquiry.cod_fisc.value.length < 16)|| (document.frmEnquiry.cognome.value == "")){
    		errorMsg += "\nCodice Fiscale non valido";	
    	}
    
    	
    	if (!frmEnquiry.acc[0].checked){
    		errorMsg += "\nAutorizzazione al trattamento dei dati (L. 675/96)";	
    	}
    	
    	if (!frmEnquiry.acc_01[0].checked){
    		errorMsg += "\nArt. 26 Legge 15/68,";	
    	}
    
    	if(!CheckCodiceFiscale(document.frmEnquiry.cod_fisc.value)){
    		errorMsg += "\nCodiceFiscale non valido,";	
    	}
    	if (errorMsg != ""){
    				
    		msg = "I seguenti campi devono essere compilati:\n";
    		msg += "__________________________________\n";
    		
    		
    		errorMsg += alert(msg + errorMsg + "\n");
    		return false;
    	}
    	 
    }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.