Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    Aiuto Codice Fiscale e controllo campi form

    Ciao ragazzi, premesso che non ne so nulla, sto arrancando a colpi di prova prova e prova.. javascript:void(0);

    Il problema è questo, ho 2 script uno che controlla che tutti i campi del form siano popolati mentre l'altro fa la validazione del campo codice fiscale funzionano ma ognuno per proprio conto mentre io vorrei integrare entrambe i controlli....come fare???

    ecco i due script ....spero di non pasticciare !!!
    codice:
     
    
    
    // script per validare il codice fiscale
    
    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";
    			
    	return "";
    }
    
    
    
    
    
    function verifica()
    {
    	cod = document.InsUtenteZS.mail.value;
    	document.InsUtenteZS.mail.focus();
    
    	if( cod == '' )
    		err = "hai lasciato in bianco il campo!\n";
    	else if( cod.length == 16 )
    		err = ControllaCF(cod);
    	
    	else
    		err = "Il codice introdotto non è valido:\n\n" +
    			"  - un codice fiscale deve essere lungo 16 caratteri.\n";
    			
    
    	if( err > '' )
    		alert("VALORE ERRATO\n\n" + err + "\nCorreggi e riprova!");
    	else
    		alert("Il codice è valido.");
    }
    
    
    // script che verifica che tutti i campi form siano popolati
    
    function controllo(){
    with(document.InsUtenteZS) {
    if(realzs.value=="") {
    alert("Errore: compilare il campo USERNAME");
    realzs.focus();
    return false;
    }
    if(PWUtente.value=="") {
    alert("Errore: compilare il campo PASSWORD");
    PWUtente.focus();
    return false;
    }
    if(nome.value=="") {
    alert("Errore: compilare il campo NOME");
    nome.focus();
    return false;
    }
    if(cognome.value=="") {
    alert("Errore: compilare il campo COGNOME");
    cognome.focus();
    return false;
    }
    if(luogo.value=="") {
    alert("Errore: compilare il campo LUOGO DI NASCITA");
    luogo.focus();
    return false;
    }
    if(mail.value=="") {
    alert("Errore: compilare il campo CODICE FISCALE");
    mail.focus();
    return false;
    }
    }
    alert("Controllo effettuato con successo. Il modulo sarà inviato.");
    return true;
    }
    Grazie per il vostro aiuto!!!

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Posta anche il form (no codice php o lato server)

    P.S. sicuro che il campo CF (codice fiscale) si chiami mail?
    cod = document.InsUtenteZS.mail.value;
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    3
    Ti rispondo da un cell... Il form e' il solito nome cignome ecc ecc. Mentre per il codice fiscale il campo si chiama mail per una semplice prova in attesa di poter cambiare il nome sul db dove viene sparato il form al momenti non c'e' il cf ma la mail che a me non serve

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    codice:
    function controllo(){
    ...
    if(verifica()){
    alert("Controllo effettuato con successo. Il modulo sarà inviato.");
    return true;
    }else{
    return false;
    }
    }
    
    function verifica()
    {
    ...
    if( err > '' ){
    		alert("VALORE ERRATO\n\n" + err + "\nCorreggi e riprova!");
    return false;
    	}else{
    		alert("Il codice è valido.");
    return true;
    }
    }

  5. #5
    Ciao Vindav, grazie per la risposta penso di aver capito la tua soluzione.

    Il mio problema è che volevo ricavare un solo script dai due postati e verificare sia che i campi siano tutti compilati e che il CF sia corretto.

    Ma ovviamente essendo una capra forse sbaglio io nell'applicare la tua soluzione.

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    Immagino che quando parli di script intendi le funzioni che hai postato, per chiarezza lo script è uno solo e contiene 3 funzioni 2 servono per il controllo del codice fiscale(ControllaCF,verifica) mentre uno(controllo) serve per il controllo dei restanti campi(anche se poi controlli che il campo del codice fiscale non sia vuoto). Ora vuoi avere una sola funzione che faccia tutti i controlli? ma è cosi importante? che ti importa se sono una o più cmq io terrei la funzione che controlla il codice fiscale(controllaCF) separata, cosi da non incasinare troppo lo script. Mentre le funzioni verifica e controllo potrebbero essere integrate.

  7. #7
    si chiaro ovviamente io mi esprimo come riesco.

    Cmq ti spiego, io devo obbligare a compilare tutti i campi del form compreso ovviamente il CF.
    Ora il problema è che quando riempio il form ma magari il CF è errato mi avvisa del'errore ma comunque procede nell'invio dei dati al DB.
    Quindi mi piacerebbe che al clik di mouse ( per parlare terraterra ) se il CF è errato l'utente è costretto a correggerlo come del resto se i campi non sono tutti compilati deve farlo!

    Ora io ho aggiunto al tasto di invio il comando onclick="controllo();verifica();" e le funzioni vengono si richiamate, ma ognuna per proprio conto.

    Ho capito che sono 2 funzioni differenti e fanno cose differenti ma non riesco a capire e soprattutto non so come fare a farle lavorare insieme.

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    Ovviamente la mia non era una critica al tuo modo di esprimerti, ho semplicemente preferito fare chiarezza altrimenti facciamo fatica a capirci. Fai una prova cosi:

    codice:
    function ControllaCF(cf)
    {
    	var validi, i, s, set1, set2, setpari, setdisp;
    	if( cf == '' )  return "Errore: compilare il campo CODICE FISCALE";
    	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";
    			
    	return "OK";
    }
    
    // script che verifica che tutti i campi form siano popolati
    function controllo(){
    with(document.InsUtenteZS) {
    if(realzs.value=="") {
    alert("Errore: compilare il campo USERNAME");
    realzs.focus();
    return false;
    }
    if(PWUtente.value=="") {
    alert("Errore: compilare il campo PASSWORD");
    PWUtente.focus();
    return false;
    }
    if(nome.value=="") {
    alert("Errore: compilare il campo NOME");
    nome.focus();
    return false;
    }
    if(cognome.value=="") {
    alert("Errore: compilare il campo COGNOME");
    cognome.focus();
    return false;
    }
    if(luogo.value=="") {
    alert("Errore: compilare il campo LUOGO DI NASCITA");
    luogo.focus();
    return false;
    }
    returnCode = ControllaCF(mail.value);
    if(returnCode != "OK"){
    alert(returnCode);	
    mail.focus();	
    return false;
    }
    }
    alert("Controllo effettuato con successo. Il modulo sarà inviato.");
    return true;
    }
    Per effettuare i controlli sul form ora devi eseguire solo la funzione "controllo"

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    3
    Ci mancherebbe, perdonami se sono stato poco chiaro io.
    Intanto grazie appena riesco provo e vediamo come va.

  10. #10
    ok vengono eseguite entrambe le funzioni ma nonnostante ci siano errori " campi vuoti" oppure cf errato continua a inviare i dati al DB.

    Mi chiedevo si può lavorare con questa logica:

    Funzione1 = x se tutto ok se invece da errori = a
    Funzione2 = y se tutto ok se invece da errori = b
    ---------------------------------------------------------
    Funzione "controllo"

    se Funzione1= x e Funzione2= y invia i dati del form
    altrimenti riesegui la funzione che ha dato valore "a" oppure "b
    e verifica nuovamente

    a leggerlo sembra tutto chiaro e se avessi fra le mani router firewall ecc ecc sarei pure in grado di farlo....

    Ma qui siamo proprio lontano dalle mie conoscenze e non saprei dove javascript:void(0);

    Perciò grazie a tutti per la pazienza e il vostro aiuto!!!

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.