0Pricing
jQuery Academy · Lezione

Manipolazione dinamica dei campi dei moduli

Imparare ad aggiungere, rimuovere e modificare dinamicamente i campi dei moduli in base all'input dell'utente, creando interfacce adattabili e interattive con jQuery.

Manipolazione dinamica dei campi dei moduli è una lezione jQuery Academy gratuita su CoddyKit. Questa è la lezione 1 di 3. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento jQuery Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso jQuery Academy include 3 lezioni in totale.

Moduli dinamici: perché e come

I moduli sono spesso statici, ma le moderne applicazioni web si basano sull'interattività. La manipolazione dinamica dei campi dei moduli consente di modificare la struttura di un modulo in tempo reale.

Ciò significa che può aggiungere, rimuovere o modificare i campi di input mentre l'utente interagisce con la pagina. Il risultato è un'esperienza utente molto migliore e moduli più adattabili!

Aggiunta di campi: nozioni di base

L'idea fondamentale alla base dell'aggiunta di campi consiste nel creare nuovi elementi HTML e inserirli nel Document Object Model (DOM).

  • Usi jQuery per creare gli elementi (ad esempio, $('')).
  • Usi metodi come .append(), .prepend(), .after() o .before() per posizionarli con precisione all'interno del modulo.
  • Ricordi di assegnare ai nuovi campi attributi name appropriati, soprattutto per l'elaborazione lato server.

Aggiunta di un nuovo input per l'e-mail

Aggiungiamo un pulsante che, quando viene cliccato, genera un nuovo campo di input per l'e-mail. Noti come creiamo la stringa HTML e poi la aggiungiamo.

<div id="email-fields">
  <input type="email" name="email[]" placeholder="Email 1">
</div>
<button id="add-email">Add Another Email</button>

<script>
$(document).ready(function() {
  let emailCount = 1;
  $('#add-email').on('click', function() {
    emailCount++;
    const newEmailField = `
      <input type="email" name="email[]" 
             placeholder="Email ${emailCount}">
    `;
    $('#email-fields').append(newEmailField);
  });
});
</script>

Rimozione dei campi: pulizia

Proprio come gli utenti possono aver bisogno di aggiungere campi, spesso devono anche rimuoverli. In questo modo il modulo rimane ordinato e pertinente alle loro esigenze.

Il metodo .remove() di jQuery è perfetto per questo scopo. Rimuove completamente dal DOM gli elementi selezionati, insieme agli eventuali dati associati e ai gestori degli eventi.

Rimozione di un input specifico

Ora estendiamo l'esempio precedente. Aggiungeremo un pulsante "Rimuovi" accanto a ogni campo e-mail. Facendo clic su di esso, il campo specifico verrà eliminato.

Importante: presti attenzione a come gestiamo gli eventi dei pulsanti "Rimuovi" aggiunti dinamicamente!

<div id="email-fields">
  <div class="email-group">
    <input type="email" name="email[]" placeholder="Email 1">
    <button class="remove-email">Remove</button>
  </div>
</div>
<button id="add-email">Add Another Email</button>

<script>
$(document).ready(function() {
  let emailCount = 1;

  $('#add-email').on('click', function() {
    emailCount++;
    const newEmailGroup = `
      <div class="email-group">
        <input type="email" name="email[]" 
               placeholder="Email ${emailCount}">
        <button class="remove-email">Remove</button>
      </div>
    `;
    $('#email-fields').append(newEmailGroup);
  });

  // Event delegation for remove buttons
  $('#email-fields').on('click', '.remove-email', function() {
    $(this).parent('.email-group').remove();
  });
});
</script>

Modifica dei campi: regolazione degli attributi

A volte non è necessario aggiungere o rimuovere un campo, ma solo modificarne le proprietà. Potrebbe trattarsi del suo value, placeholder, dello stato disabled o persino del suo name o id.

jQuery mette a disposizione .attr() per gli attributi HTML e .prop() per le proprietà del DOM. Spesso si preferisce .prop() per gli attributi booleani come checked, disabled o selected.

Attivazione o disattivazione dello stato del campo

Ecco un esempio in cui una casella di controllo determina se un input di testo è abilitato o disabilitato. Usiamo .prop() per modificare la proprietà disabled.

<label>
  <input type="checkbox" id="enable-input"> Enable Input
</label>
<input type="text" id="my-input" value="Hello" disabled>

<script>
$(document).ready(function() {
  $('#enable-input').on('change', function() {
    const isChecked = $(this).is(':checked');
    $('#my-input').prop('disabled', !isChecked); // Set disabled based on checkbox state
  });
});
</script>

Eventi sugli elementi dinamici

Un errore comune: i gestori di eventi diretti (come $('#myButton').on('click', ...)) vengono associati solo agli elementi presenti al caricamento della pagina.

Per gli elementi aggiunti dinamicamente è necessaria la delegazione degli eventi. Ciò significa associare il listener dell'evento a un elemento padre statico e specificare poi un selettore per gli elementi figli dinamici. Il metodo .on() di jQuery gestisce tutto in modo eccellente.

Esempio pratico "Aggiungi altro"

Combinando ciò che abbiamo imparato, ecco uno schema comune: un pulsante "Aggiungi competenza" che consente agli utenti di elencare più competenze, ognuna con il proprio pulsante "Rimuovi".

Noti l'uso di data-id per l'identificazione univoca e di .closest() per trovare il genitore da rimuovere.

<div id="skill-list">
  <div class="skill-item" data-id="1">
    <input type="text" name="skill[]" placeholder="Skill 1">
    <button class="remove-skill">Remove</button>
  </div>
</div>
<button id="add-skill">Add Skill</button>

<script>
$(document).ready(function() {
  let skillId = 1; // Unique ID for each skill item

  $('#add-skill').on('click', function() {
    skillId++;
    const newSkillItem = `
      <div class="skill-item" data-id="${skillId}">
        <input type="text" name="skill[]" 
               placeholder="Skill ${skillId}">
        <button class="remove-skill">Remove</button>
      </div>
    `;
    $('#skill-list').append(newSkillItem);
  });

  // Event delegation for remove buttons
  $('#skill-list').on('click', '.remove-skill', function() {
    // Prevent removing the very first skill if desired
    if ($('.skill-item').length > 1) {
      $(this).closest('.skill-item').remove();
    } else {
      alert("You need at least one skill!");
    }
  });
});
</script>

Verifica sui moduli dinamici

Metta alla prova la Sua comprensione della manipolazione dinamica dei moduli.

Riepilogo: moduli dinamici

In questa lezione ha imparato a rendere i moduli più interattivi e intuitivi aggiungendo, rimuovendo e modificando dinamicamente i campi con jQuery.

  • Usi .append(), .prepend(), .after() e .before() per aggiungere elementi.
  • Usi .remove() per eliminare gli elementi.
  • Usi .attr() e .prop() per modificare gli attributi e le proprietà degli elementi.
  • È fondamentale usare la delegazione degli eventi con .on() per gli eventi sugli elementi aggiunti al DOM dopo il caricamento iniziale della pagina.

Ora passeremo alla validazione dei moduli lato client!

Domande Frequenti

La lezione «Manipolazione dinamica dei campi dei moduli» è gratuita?

Sì — il testo completo di «Manipolazione dinamica dei campi dei moduli» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso jQuery Academy, passa a CoddyKit PRO. Il corso jQuery Academy include 3 lezioni in totale.

Cosa imparerò in «Manipolazione dinamica dei campi dei moduli»?

Imparare ad aggiungere, rimuovere e modificare dinamicamente i campi dei moduli in base all'input dell'utente, creando interfacce adattabili e interattive con jQuery. Eserciti jQuery Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare jQuery Academy?

Non è richiesta alcuna esperienza precedente. jQuery Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 3.

Quanto tempo richiede la lezione «Manipolazione dinamica dei campi dei moduli»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione jQuery Academy?

Sì. Ogni lezione jQuery Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Manipolazione dinamica dei campi dei moduli
  2. Logica di validazione dei moduli lato client
  3. Invio dei moduli tramite AJAX e feedback
← Torna a jQuery Academy