Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630

    Controllo e prosecuzione

    Carissimi,
    ho trovato questo script che fà al caso mio
    codice:
    <script language="JavaScript">
    <!--
    
    function ControllaCF(cf)
    {
    	var validi, i, s, set1, set2, setpari, setdisp;
    	if( cf == '' )  return '';
    	cf = cf.toUpperCase();
    	if( cf.length != 16 )
    		return "La lunghezza del codice fiscale non è\n"
    		+"corretta: il codice fiscale dovrebbe essere lungo\n"
    		+"esattamente 16 caratteri.\n";
    	validi = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    	for( i = 0; i < 16; i++ ){
    		if( validi.indexOf( cf.charAt(i) ) == -1 )
    			return "Il codice fiscale contiene un carattere non valido `" +
    				cf.charAt(i) +
    				"'.\nI caratteri validi sono le lettere e le cifre.\n";
    	}
    	set1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    	set2 = "ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ";
    	setpari = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    	setdisp = "BAKPLCQDREVOSFTGUHMINJWZYX";
    	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 "Il codice fiscale non è corretto:\n"+
    			"il codice di controllo non corrisponde.\n";
    	return "";
    }
    
    
    function ControllaPIVA(pi)
    {
    	if( pi == '' )  return '';
    	if( pi.length != 11 )
    		return "La lunghezza della partita IVA non è\n" +
    			"corretta: la partita IVA dovrebbe essere lunga\n" +
    			"esattamente 11 caratteri.\n";
    	validi = "0123456789";
    	for( i = 0; i < 11; i++ ){
    		if( validi.indexOf( pi.charAt(i) ) == -1 )
    			return "La partita IVA contiene un carattere non valido `" +
    				pi.charAt(i) + "'.\nI caratteri validi sono le cifre.\n";
    	}
    	s = 0;
    	for( i = 0; i <= 9; i += 2 )
    		s += pi.charCodeAt(i) - '0'.charCodeAt(0);
    	for( i = 1; i <= 9; i += 2 ){
    		c = 2*( pi.charCodeAt(i) - '0'.charCodeAt(0) );
    		if( c > 9 )  c = c - 9;
    		s += c;
    	}
    	if( ( 10 - s%10 )%10 != pi.charCodeAt(10) - '0'.charCodeAt(0) )
    		return "La partita IVA non è valida:\n" +
    			"il codice di controllo non corrisponde.\n";
    	return '';
    }
    
    
    function verifica()
    {
    	cod = document.form1.cod.value;
    	document.form1.cod.focus();
    
    	if( cod == '' )
    		err = "hai lasciato in bianco il campo!\n";
    	else if( cod.length == 16 )
    		err = ControllaCF(cod);
    	else if( cod.length == 11 )
    		err = ControllaPIVA(cod);
    	else
    		err = "Il codice introdotto non è valido:\n\n" +
    			"  - un codice fiscale deve essere lungo 16 caratteri;\n\n" +
    			"  - una partita IVA deve essere lunga 11 caratteri.\n";
    
    	if( err > '' )
    		alert("VALORE ERRATO\n\n" + err + "\nCorreggi e riprova!");
    	else
    	alert("Il codice è valido.")
    }
    
    // -->
    </script>
    In pratica come si vede effettua su unico campo solo il controllo del CF e della PIVA,
    io vorrei che se il codice è valido non mi faccia un alert come è ora impostato, ma prosegua il form su cui ho inserito la verifica, come posso fare?
    Grazie
    G.

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Prova a togliere queste due righe:
    else
    alert("Il codice è valido.")
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630
    Ciao, purtroppo era una prova che avevo fatto, mi da errore javascript
    Grazie
    G.

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Prova cosi:
    else
    return true;
    oppure
    else return;
    se non funziona indica tutte le prove fatte e come richiami la funzione.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630
    Grazie per l'aiuto, ma in nessun modo che mi hai indicicato funziona, se lascio else con l'alert è tutto funzionante.
    Io richiamo lo script tramite:

    onclick="verifica()"

    dal button invia.
    Grazie
    G.

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    else document.form1.submit()
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630
    Ciao,
    ho provato quest'ultima modifica che mi hai scritto ma persiste l'errore che fa alla riga 66 dello script:

    document.form1.cod.value è nullo o non è un oggetto.

    Premetto che è l'identico errore che faceva con le precedenti modifiche.
    Come posso risolverlo?
    Grazie ancora.
    G.

  8. #8
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Premesso che se indicavi subito tutte le prove eseguite non si perdeva tempo in due, e anche specificare l'errore aiutava di molto.
    Detto ciò in una pagina con solo il campo cod e lo script con l'ultima soluzione che t'ho passato (else document.form1.submit() alla fine della funzione verifica()) funziona benissimo testato.
    Ti consiglio di verificare il form della tua pagina e assicurarti che esista materialmente il campo cod.
    Saluti.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630
    Ciao,
    scusami per l'inconveniente, ho scandagliato il mio form e ho trovato il problema, c'era un tag di chiusura del form prima del campo cod, però ora funziona come dici, però al submit lo script fa la verifica indicando per esempio un'errore nell'inserimento del dato nel campo cod, ma invia ugualmente il form, invece se c'è un errore di compilazione non deve far proseguire.
    Grazie
    g.

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630
    Nessuno può aiutarmi?
    Grazie
    G.

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.