<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ convalida moduli - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Impara a programmare gratuitamente! Tutorial di programmazione su Python, JavaScript, Linux e molto altro. ]]>
        </description>
        <link>https://www.freecodecamp.org/italian/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ convalida moduli - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/italian/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Tue, 09 Jun 2026 10:00:42 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/italian/news/tag/convalida-moduli/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ Convalida dei dati: come controllare l'input dell'utente su moduli HTML con esempi di codice in JavaScript ]]>
                </title>
                <description>
                    <![CDATA[ I moduli sono onnipresenti nelle applicazioni web. Alcune app utilizzano i moduli per raccogliere dati per la registrazione degli utenti e per fornire un indirizzo email. Altri li usano per eseguire transazioni online per agevolare un'esperienza di acquisto. Potresti utilizzare alcuni moduli web per richiedere il prestito per una nuova ]]>
                </description>
                <link>https://www.freecodecamp.org/italian/news/convalida-dati-moduli/</link>
                <guid isPermaLink="false">61fa328d184ddc0518e72937</guid>
                
                    <category>
                        <![CDATA[ convalida moduli ]]>
                    </category>
                
                    <category>
                        <![CDATA[ JavaScript ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Angelo Mirabelli ]]>
                </dc:creator>
                <pubDate>Thu, 10 Feb 2022 05:30:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/italian/news/content/images/2022/02/6003768298be260817e4aadc.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Articolo originale:</strong> <a href="https://www.freecodecamp.org/news/form-validation-with-html5-and-javascript/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">Data Validation – How to Check User Input on HTML Forms with Example JavaScript Code</a>
      </p><p>I moduli sono onnipresenti nelle applicazioni web. Alcune app utilizzano i moduli per raccogliere dati per la registrazione degli utenti e per fornire un indirizzo email. Altri li usano per eseguire transazioni online per agevolare un'esperienza di acquisto.</p><p>Potresti utilizzare alcuni moduli web per richiedere il prestito per una nuova auto, mentre ne utilizzerai altri per ordinare la pizza per cena. Quindi è importante che i dati raccolti da quei moduli siano puliti, formattati correttamente e privi di qualsiasi codice dannoso. Questo processo è chiamato convalida del modulo.</p><p>Abbiamo bisogno della convalida del modulo ogni volta che accettiamo l'input dell'utente. Dobbiamo assicurarci che i dati inseriti siano nel formato corretto, rientrino in un intervallo di dati valido (ad esempio per i campi della data) e non contengano codice dannoso che potrebbe portare a iniezioni SQL. Dati non corretti o mancanti possono anche causare errori nell'API.</p><h2 id="quali-sono-i-diversi-tipi-di-convalida-dei-moduli"><strong>Quali sono i diversi tipi di convalida dei moduli?</strong></h2><p>La convalida del modulo può avvenire sul lato client e sul lato server.</p><p>La convalida lato client avviene utilizzando attributi HTML5 e JavaScript .</p><p>Potresti aver notato che in alcuni moduli, non appena inserisci un indirizzo e-mail non valido, il modulo visualizza un errore "Inserisci un'e-mail valida". Questo tipo immediato di convalida viene solitamente eseguito tramite JavaScript lato client.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/04/form-validation-cc.gif" class="kg-image" alt="Validation error for incorrect credit card number" width="600" height="400" loading="lazy"></figure><p>In altri casi, potresti aver notato che quando compili un modulo e inserisci dettagli come una carta di credito, potrebbe mostrare una schermata di caricamento e quindi mostrare un errore "Questa carta di credito non è valida".</p><p>Qui, il modulo ha effettuato una chiamata al suo codice lato server che ha restituito un errore di convalida dopo aver eseguito ulteriori controlli della carta di credito. Questo caso di convalida in cui viene effettuata una chiamata lato server è chiamato convalida lato server.</p><h2 id="quali-dati-devono-essere-convalidati"><strong>Quali dati devono essere convalidati?</strong></h2><p>La convalida del modulo è necessaria ogni volta che accetti i dati da un utente. Ciò può includere:</p><ol><li>Convalida del formato dei campi come indirizzo email, numero di telefono, codice postale, nome, password.</li><li>Convalida dei campi obbligatori</li><li>Verifica del tipo di dati come stringa vs numero per campi come il numero di previdenza sociale.</li><li>Assicurarsi che il valore immesso sia un valore valido per il paese, per la data e così via.</li></ol><h2 id="come-impostare-la-convalida-lato-client"><strong>Come impostare la convalida lato client</strong></h2><p>Sul lato client, la convalida può essere eseguita in due modi:</p><ol><li>Utilizzo della funzionalità HTML5</li><li>Utilizzo di JavaScript</li></ol><h3 id="come-impostare-la-convalida-con-la-funzionalit-di-html5"><strong>Come impostare la convalida con la funzionalità di HTML5</strong></h3><p>HTML5 fornisce una serie di attributi per aiutare a convalidare i dati. Di seguito sono riportati alcuni casi comuni di convalida:</p><!--kg-card-begin: markdown--><ul>
<li>Creazione di campi obbligatori utilizzando required</li>
<li>Vincolare la lunghezza dei dati:
<ul>
<li>minlength, maxlength  per dati di testo</li>
<li>min e max per impostare il range di valori per dati tipo numerico</li>
</ul>
</li>
<li>Limitazione del tipo di dati utilizzando type:
<ul>
<li><code>&lt;input type="email" name="multiple"&gt;</code></li>
</ul>
</li>
<li>Specificare i modelli di dati utilizzando pattern:
<ul>
<li>specifica un modello regex a cui devono corrispondere i dati immessi</li>
</ul>
</li>
</ul>
<!--kg-card-end: markdown--><p>Quando il valore di input corrisponde a queste convalide di HTML5, gli viene assegnata una psuedo-class <code>:valid</code>, e <code>:invalid</code> in caso contrario.</p><p>Vediamo un esempio:</p><pre><code class="language-html">&lt;form&gt;
&lt;label for="firstname"&gt; First Name: &lt;/label&gt;
&lt;input type="text" name="firstname" id="firstname" required maxlength="45"&gt;
&lt;label for="lastname"&gt; Last Name: &lt;/label&gt;
&lt;input type="text" name="lastname" id="lastname" required maxlength="45"&gt;
&lt;button&gt;Submit&lt;/button&gt;
&lt;/form&gt;
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/news/content/images/2021/04/form-validation-required.png" class="kg-image" alt="Client side form validation for required fields using HTML5 attributes" width="600" height="400" loading="lazy"></figure><p><a href="https://jsfiddle.net/58xc2qyj/">Link a JSFiddle</a></p><p>Qui abbiamo due campi obbligatori: Nome e Cognome. Prova questo esempio in JSFidle. Se salti uno di questi campi e premi invio, riceverai un messaggio "Please fill out this field". Questa è la convalida integrata usando HTML5.</p><h3 id="come-impostare-la-convalida-utilizzando-javascript"><strong>Come impostare la convalida utilizzando JavaScript</strong></h3><p>Quando si implementa la convalida del modulo, ci sono alcune cose da considerare:</p><ol><li>Quali sono i dati ritenuti "validi"? Questo ti aiuta a rispondere a domande su formato, lunghezza, campi obbligatori e tipo di dati.</li><li>Cosa succede quando vengono inseriti dati non validi? Questo ti aiuterà a definire l'esperienza dell'utente della convalida: se mostrare un messaggio di errore in linea al campo o nella parte superiore del modulo, quanto deve essere dettagliato il messaggio di errore, se il modulo deve essere comunque trasmesso, se c'è dell'analitica per tenere traccia del formato non valido di dati. E così via.</li></ol><p>Puoi eseguire la convalida in JavaScript in due modi:</p><ol><li>Convalida in linea utilizzando JavaScript</li><li>API HTML5 di convalida dei vincoli</li></ol><h4 id="convalida-in-linea-utilizzando-javascript"><strong>Convalida in linea utilizzando JavaScript</strong></h4><pre><code class="language-html">&lt;form id="form"&gt;
  &lt;label for="firstname"&gt; First Name* &lt;/label&gt;
  &lt;input type="text" name="firstname" id="firstname" /&gt;
  &lt;button id="submit"&gt;Submit&lt;/button&gt;

  &lt;span role="alert" id="nameError" aria-hidden="true"&gt;
    Please enter First Name
  &lt;/span&gt;
&lt;/form&gt;
</code></pre><pre><code class="language-javascript">const submit = document.getElementById("submit");

submit.addEventListener("click", validate);

function validate(e) {
  e.preventDefault();

  const firstNameField = document.getElementById("firstname");
  let valid = true;

  if (!firstNameField.value) {
    const nameError = document.getElementById("nameError");
    nameError.classList.add("visible");
    firstNameField.classList.add("invalid");
    nameError.setAttribute("aria-hidden", false);
    nameError.setAttribute("aria-invalid", true);
  }
  return valid;
}
</code></pre><pre><code class="language-css">#nameError {
  display: none;
  font-size: 0.8em;
}

#nameError.visible {
  display: block;
}

input.invalid {
  border-color: red;
}
</code></pre><p><a href="https://jsfiddle.net/0tq3e49w/4/">Link a JSFiddle</a></p><p>In questo esempio, controlliamo i campi obbligatori utilizzando JavaScript. Se un campo obbligatorio non è compilato, utilizziamo CSS per mostrare il messaggio di errore.</p><p>Le etichette Aria vengono modificate di conseguenza per segnalare un errore. Usando CSS per mostrare/nascondere un errore, stiamo riducendo il numero di manipolazioni necessarie da fare sui DOM. Il messaggio di errore viene fornito nel contesto, rendendo così intuitiva l'esperienza dell'utente.</p><h4 id="api-html5-convalida-dei-vincoli"><strong>API HTML5 convalida dei vincoli </strong></h4><p>Gli attributi in HTML <code>required</code> e <code>pattern</code> possono aiutare a eseguire la convalida di base. Ma se desideri una convalida più complessa o desideri fornire messaggi di errore dettagliati, puoi utilizzare l'API di convalida dei vincoli.</p><p>Alcuni metodi forniti da questa API sono:</p><ol><li><code>checkValidity</code></li><li><code>setCustomValidity</code></li><li><code>reportValidity</code></li></ol><p>Sono utili le seguenti proprietà:</p><ol><li><code>validity</code></li><li><code>validationMessage</code></li><li><code>willValidate</code></li></ol><p>In questo esempio, convalideremo utilizzando metodi integrati in HTML5 come <code>required</code> e <code>length</code> insieme all'API di convalida dei vincoli per fornire messaggi di errore dettagliati.</p><pre><code class="language-html">&lt;form&gt;
&lt;label for="firstname"&gt; First Name: &lt;/label&gt;
&lt;input type="text" name="firstname" required id="firstname"&gt;
&lt;button&gt;Submit&lt;/button&gt;
&lt;/form&gt;
</code></pre><pre><code class="language-javascript">const nameField = document.querySelector("input");

nameField.addEventListener("input", () =&gt; {
  nameField.setCustomValidity("");
  nameField.checkValidity();
  console.log(nameField.checkValidity());
});

nameField.addEventListener("invalid", () =&gt; {
  nameField.setCustomValidity("Please fill in your First Name.");
});
</code></pre><p><a href="https://jsfiddle.net/xz2wjLck/1/">Link a JSFiddle</a></p><h2 id="non-dimenticare-la-convalida-lato-server"><strong>Non dimenticare la convalida lato server</strong></h2><p>La convalida lato client non è l'unico controllo di convalida che dovresti fare. Devi anche convalidare i dati ricevuti dal tuo client sul codice lato server per assicurarti che i dati corrispondano a ciò che ti aspetti che siano.</p><p>È inoltre possibile utilizzare la convalida lato server per eseguire verifiche della logica aziendale che non dovrebbero risiedere sul lato client.</p><h2 id="procedure-consigliate-per-la-convalida-dei-moduli"><strong>Procedure consigliate per la convalida dei moduli</strong></h2><ol><li>Avere sempre la convalida lato server, poiché malintenzionati possono eludere la convalida lato client.</li><li>Fornisci messaggi di errore dettagliati esplicitamente legati al campo che ha prodotto l'errore.</li><li>Fornisci un esempio di come dovrebbero apparire i dati in caso di un messaggio di errore, ad esempio - "L'email non corrispondeva al formato - test@example.com "</li><li>Evita di utilizzare singole pagine di errore che comportano il reindirizzamento. Questa è un'esperienza utente negativa e costringe l'utente a tornare a una pagina precedente per correggere il modulo e perdere il contesto.</li><li>Contrassegna sempre i campi obbligatori.</li></ol><h3 id="ti-interessano-altri-tutorial-e-articoli-come-questo-iscriviti-alla-mia-newsletter-in-inglese-oppure-seguimi-su-twitter"><strong>Ti interessano altri tutorial e articoli come questo? <a href="https://tinyletter.com/shrutikapoor">Iscriviti alla mia newsletter</a> (in inglese) oppure <a href="https://twitter.com/shrutikapoor08">seguimi su Twitter</a></strong></h3> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
