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

    Check su campo Codice Fiscale

    Buonasera,

    ho dato un'occhiata al form ma non ho trovato risposta al mio dilemma.
    Nella mia pagina ho un form con vari campi da compilare, tra cui il campo Codice Fiscale.
    Per ora valido il campo con Js controllando se il codice inserito è alfanumerico, e funziona.
    Ma esiste il caso in cui chi si registra è una società, quindi il campo CF non sarà più alfanumerico ma numerico e basta (di 11 caratteri, magari uguali alla partita IVA). Non riesco a validare il form, lasciando per buoni entrambi i casi, premettendo che di JS non sono esperto.

    Posto il codice.

    Funzione JS nella mia pagina html:

    codice:
    <script type="text/javascript">
      function ControllaForm(){
      var controllo=false;
        if (document.contatto.ragio.value == "" ){
          controllo=true;
          alert("Attenzione! La Ragione Sociale \350 un campo obbligatorio.\nAttention! The Corporate Name field is compulsory.");
          document.contatto.ragio.focus();
        }
        if (document.contatto.piva.value == "" ){
          controllo=true;
          alert("Attenzione! La Partita IVA \350 un campo obbligatorio.\nAttention! The VAT Number field is compulsory.");
          document.contatto.piva.focus();
        }
        var piva = document.contatto.piva.value;
        if (isNaN(piva)){
              controllo=true;
              alert("Attenzione! La Partita IVA inserita non \350 corretta.\nAttention! The VAT Number is wrong.");
              document.contatto.piva.focus();
        }
        if (document.contatto.codfis.value == "" ){
              controllo=true;
              alert("Attenzione! Il Codice Fiscale \350 un campo obbligatorio.\nAttention! The Fiscal Code field is compulsory.");
              document.contatto.codfis.focus();
        }
    
    
    
    
        var pattern = /^[a-zA-Z]{6}[0-9]{2}[a-zA-Z][0-9]{2}[a-zA-Z][0-9]{3}[a-zA-Z]$/;
        if (document.contatto.codfis.value.search(pattern) == -1){
              controllo=true;
              alert("Attenzione! Il Codice Fiscale \350 errato.\nAttention! The Fiscal Code is wrong.");
              document.contatto.codfis.focus();
        }
    
    
    
    
        if (document.contatto.mail.value == "" ){
          controllo=true;
          alert("Attenzione! L' E-mail \350 un campo obbligatorio.\nAttention! The E-mail field is compulsory.");
          document.contatto.mail.focus();
        }
        if (document.contatto.mail.value.indexOf("@") == -1 ) {
          controllo=true;
          alert("Attenzione: L'E-mail inserita non \350 valida.\nAttention! The E-mail is wrong.");
          document.contatto.mail.focus();
        }
        if (document.contatto.cons.checked==false ){
          controllo=true;
          alert("Attenzione! L'Autorizzazione al Trattamento \350 un campo obbligatorio.\nAttention! The Authorize the Treatment field is compulsory.");
          document.contatto.cons.focus();
        }
      if (controllo){return false}else{return true}
      }
    </script>
    Richiamo della funzione nel form:

    codice:
    <form action="CDONTSMail.asp" method="post" name=contatto id=contatto OnSubmit="return ControllaForm(this);"> ...
    Ovviamente il nome del campo CF è codfis.

    Come posso integrare??
    Grazie a tutti in anticipo!
    Digito, ergo sum...

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,695
    Ciao, puoi risolvere in vari modi.
    Dal momento che utilizzi una espressione regolare per controllare quel campo, puoi inserire un ulteriore controllo usando l'operatore OR (|) all'interno del pattern stesso, così da verificare se viene trovato almeno uno dei due casi in questione (un valore numerico di 11 cifre oppure un valore alfanumerico di 16 cifre).

    Una cosa tipo:
    codice:
    var pattern = /^([0-9]{11}|[a-zA-Z]{6}[0-9]{2}[a-zA-Z][0-9]{2}[a-zA-Z][0-9]{3}[a-zA-Z])$/;
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    Grazie Killer, funziona perfettamente!


    Quote Originariamente inviata da KillerWorm Visualizza il messaggio
    Ciao, puoi risolvere in vari modi.
    Dal momento che utilizzi una espressione regolare per controllare quel campo, puoi inserire un ulteriore controllo usando l'operatore OR (|) all'interno del pattern stesso, così da verificare se viene trovato almeno uno dei due casi in questione (un valore numerico di 11 cifre oppure un valore alfanumerico di 16 cifre).

    Una cosa tipo:
    codice:
    var pattern = /^([0-9]{11}|[a-zA-Z]{6}[0-9]{2}[a-zA-Z][0-9]{2}[a-zA-Z][0-9]{3}[a-zA-Z])$/;
    Digito, ergo sum...

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 © 2024 vBulletin Solutions, Inc. All rights reserved.