Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    problema codice fiscale

    ragazzi mi serve una mano non sono molto esperto in javascript anche perche da quando uso il .net nn lo uso praticamente piu, ma ho dovuto mette mano a cose fatte da altri e devo inserire il codice fiscale:

    ecco qua:
    mi da errore su function isCodiceFiscale alla if(szCodFisc.length<16) che szcodfisc e' un oggetto nullo. .
    function isCodiceFiscale(obj)
    {
    var nTempNum;
    var nAppoNum;
    var i;
    var szTempCodFisc;
    var szLastChar;
    var szValued;
    var szInValued;

    szCodFisc = obj.value;

    if (szCodFisc.length<16) return false
    if (szCodFisc == "") return false;
    else
    {
    szCodFisc =szCodFisc.toUpperCase();
    szLastChar = szCodFisc.substr(szCodFisc.length - 1,1);
    szTempCodFisc =szCodFisc.substr(0,szCodFisc.length - 1);
    nTempNum = 0;
    i = 0;

    while (true)
    {
    szValued=" B1A0KKPPLLC2QQD3RRE4VVOOSSF5TTG6UUH7MMI8NNJ9WWZZYY XX";
    // I DISPARI
    szInValued=szTempCodFisc.substr(i,1);
    nAppoNum = szValued.search(szInValued);
    nTempNum = nTempNum + (nAppoNum & 0x7FFE) / 2;
    i = i + 1;
    if (i>15)
    break;
    szValued=" A0B1C2D3E4F5G6H7I8J9KKLLMMNNOOPPQQRRSSTTUUVVWWXXYY ZZ";
    // I PARI
    szInValued=szTempCodFisc.substr(i,1);
    nAppoNum = szValued.search(szInValued);
    nTempNum = nTempNum + (nAppoNum & 0x7FFE) / 2;
    i = i + 1;
    }
    nTempNum = nTempNum % 26; //mod
    szValued="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    szValued= szValued.substr(nTempNum, 1);
    if (szValued==szLastChar) return true;
    else return false;
    }
    if ((aForm.cod_fisc.value==0) && !isCodiceFiscale(aForm.cod_fisc))
    {
    alert("Codice Fiscale non valido");
    aForm.cod_fisc.focus();
    return false;
    }
    }



    </script>
    </head>
    <body>

    <form name="form1">
    Codice Fiscale

    <input type="text" name="fiscale">

    <input type="button" value="aaaaaaaaa" onclick="isCodiceFiscale(document.form1.fiscale.va lue)">

    </form>
    </body>
    </html>

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Dall'evento passi una stringa; nella funzione ti aspetti u oggetto.

    Modifica la chiamata:
    onclick="isCodiceFiscale(document.form1.fiscale);"


    PS: non ho guardato eventuali altri errori
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    nn da piu problemi ma nn fa nulla mex di conferma o d'errore nn li visualizza altri suggerimenti??

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Difficile seguire quel codice.

    Lo hai anche postato senza includelo in [ code ] ... [ /code ] (senza spazi), per cui si e` persa la formattazione.

    Comunque dovresti provare ad inserire degli alert in punti critici, per verificare cosa analizza.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    ma guarda io ho provato in tutti i modi ma nn fa nulla nn da nessun erroe..mah!
    codice:
    <html>
    <head>
    <script language="javascript">
    function isCodiceFiscale(obj)
    {
    	var nTempNum;
    	var nAppoNum;
    	var i;
    	var szTempCodFisc;
    	var szLastChar;
    	var szValued;
    	var szInValued;
     
    	szCodFisc = obj.value;
    	 
    	if (szCodFisc.length<16) return false;
    		if (szCodFisc == "") return false;
    		else 
    		{
    			szCodFisc =szCodFisc.toUpperCase();
    			szLastChar = szCodFisc.substr(szCodFisc.length - 1,1);
    			szTempCodFisc =szCodFisc.substr(0,szCodFisc.length - 1);
    			nTempNum = 0;
    			i = 0;
    	 
    			while (true) 
    			{
    				szValued=" B1A0KKPPLLC2QQD3RRE4VVOOSSF5TTG6UUH7MMI8NNJ9WWZZYYXX";
    				// I DISPARI
    				szInValued=szTempCodFisc.substr(i,1);
    				nAppoNum = szValued.search(szInValued);
    				nTempNum = nTempNum + (nAppoNum &  0x7FFE) / 2;
    				i = i + 1;
    				if (i>15)
    					break;
    					szValued=" A0B1C2D3E4F5G6H7I8J9KKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ";
    					// I PARI
    					szInValued=szTempCodFisc.substr(i,1);
    					nAppoNum = szValued.search(szInValued);
    					nTempNum =  nTempNum + (nAppoNum &  0x7FFE) / 2;
    					i = i + 1;
    			}
    			nTempNum = nTempNum % 26; //mod
    			szValued="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    			szValued= szValued.substr(nTempNum, 1);
    			if (szValued==szLastChar) return true;
    			else return false;
    		}
    		
    	if ((form1.fiscale.value=='') && !isCodiceFiscale(form1.fiscale))
    	{
    		alert("Codice Fiscale non valido");
    		form1.fiscale.focus();
    		return false;
    	}
    	else
    	{
    	alert("Codice Fiscale valido");
    		form1.cod_fisc.focus();
    		return false;
    	}
    }
    </script>
    </head>
    <body>
    
    <form name="form1">
    Codice Fiscale
    
    <input type="text" name="fiscale">
    
    <input type="button" value="aaaaaaaaa" onclick="isCodiceFiscale(document.form1.fiscale);">
    
    </form>
    </body>
    </html>

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    C'e` un errore di indentazione (che non pregiudica l'uso della funzioen, ma crea confusione all'umano.

    Provo a riscrivere la funzione (sistemando le indentazioni come piace a me per poterle seguire meglio), e ti inserisco degli alert:
    codice:
    <html>
    <head>
    <script type="text/javascript" language="javascript">
    function isCodiceFiscale(obj) {
      var nTempNum;
      var nAppoNum;
      var i;
      var szTempCodFisc;
      var szLastChar;
      var szValued;
      var szInValued;
     
      szCodFisc = obj.value;
      alert("test1: "+szCodFisc);	 
    
      if (szCodFisc.length<16) {
        alert("Caratteri insufficienti");
        obj.focus();
        return false;
      }
      if (szCodFisc == "") {
        alert("Campo vuoto");
        obj.focus();
        return false;
      }
    
      szCodFisc =szCodFisc.toUpperCase();
      szLastChar = szCodFisc.substr(szCodFisc.length - 1,1);
      szTempCodFisc =szCodFisc.substr(0,szCodFisc.length - 1);
      nTempNum = 0;
      i = 0;
    	 
      while (true) {
        szValued=" B1A0KKPPLLC2QQD3RRE4VVOOSSF5TTG6UUH7MMI8NNJ9WWZZYYXX";	// I DISPARI
        szInValued=szTempCodFisc.substr(i,1);
        nAppoNum = szValued.search(szInValued);
        nTempNum = nTempNum + (nAppoNum &  0x7FFE) / 2;
        i++;
        if (i>15) break;
    
        szValued=" A0B1C2D3E4F5G6H7I8J9KKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ";	// I PARI
        szInValued=szTempCodFisc.substr(i,1);
        nAppoNum = szValued.search(szInValued);
        nTempNum =  nTempNum + (nAppoNum &  0x7FFE) / 2;
        i++;
      }
      nTempNum = nTempNum % 26; //mod
      szValued="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
      szValued= szValued.substr(nTempNum, 1);
      if (szValued==szLastChar) {
        alert("Codice Fiscale valido");
        return true;
      } else {
        alert("Codice Fiscale non valido");
        obj.focus();
        return false;
      }
    
    //  if ((obj.value=='') && !isCodiceFiscale(obj)) {
    //    alert("Codice Fiscale non valido");
    //    obj.focus();
    //    return false;
    //  } else {
    //    alert("Codice Fiscale valido");
    ////    obj.form.cod_fisc.focus();
    //   return false;
    //  }
    }
    </script>
    </head>
    <body>
    
    <form name="form1">
    Codice Fiscale
    
    <input type="text" name="fiscale">
    
    <input type="button" value="aaaaaaaaa" onclick="isCodiceFiscale(this.form.fiscale);">
    
    </form>
    Ho trovato anche un uso improprio dell'oggetto form1 (non definito all'interno della funzione) - corretto

    L'ultima parte, in cui la funzione richiama se stessa passando lo stesso parametro non riesco a seguirla, e la ho tolta, sostituendo i messaggi nei vari return.

    Non so se ora funziona (e` un po' troppo complesso, e non ho tempo di implementarlo io), ma provalo.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    allora prima di tutto ti ringrazio davvero tanto la cosa sta funzionando ho provato ad inserire un cod fiscale corretto ma mi dice che il codice fiscale non è corretto da cosa puo' dipendere?

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Ci sono mille possibili errori.

    Puo` essere un errore del codice, puo` essere un errore del codificatore implementato nello script, e puo` essere un errore introdotto da me nel rivedere lo script.

    Se sai fare la codifica del codfisc a mano, puoi controllarlo a mano: io avevo trovato un algoritmo proprio nel forum scripting, ma ora credo sia stato cancellato (risaliva a diversi anni fa).

    Prova anche con altri codici fiscali.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  9. #9
    uhm..vabbe vedro che trovo in giro anche se nn posso sta tanto sul web!

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.