05

Input Utente ๐Ÿ“

Impara a prendere dati dagli utenti con gli input! Creerai form interattivi che reagiscono in tempo reale.

โฑ๏ธ 40 minuti ๐ŸŽฏ Livello: Principiante ๐Ÿ“ 1 Form Iscrizione

๐Ÿ“š Benvenuto nella Lezione 5!

Bentornato Developer! ๐ŸŽ‰ Finora hai lavorato con dati fissi. Ora imparerai a prendere dati DAGLI UTENTI!

Gli input sono il modo in cui gli utenti comunicano con la tua app. Login, registrazione, form contatti, ricerca... tutto usa gli input!

In questa lezione scriverai codice per leggere valori dagli input e creare un form di iscrizione completo! ๐Ÿ“

๐ŸŽฏ Cosa Imparerai

  • โœ… I diversi tipi di input (text, email, number, date...)
  • โœ… Prendere valori con .value
  • โœ… Usare addEventListener('input')
  • โœ… Convertire stringhe in numeri
  • โœ… Validazione base degli input
  • โœ… Progetto: Form iscrizione con feedback visivo

๐ŸŽฎ Perchรฉ gli Input Sono Importanti?

Praticamente ogni app usa gli input:

  • ๐Ÿ” Login/Registrazione: Email, password
  • ๐Ÿ” Ricerca: Barra di ricerca
  • ๐Ÿ’ฌ Form Contatti: Nome, messaggio
  • ๐Ÿ›’ Checkout: Indirizzo, carta
  • โš™๏ธ Impostazioni: Preferenze utente

๐Ÿ‘€ Demo: Input in Tempo Reale

Guarda come funzionano gli input! Scrivi qualcosa e vedi il valore apparire sotto:

Valore dell'input:
Scrivi qualcosa sopra...

๐Ÿค” Come Funziona?

Il codice JavaScript legge il valore con .value:

const input = document.querySelector('#demoInput');
const output = document.querySelector('#demoOutput');

input.addEventListener('input', function() {
    output.textContent = input.value;
});

๐Ÿ“ Tipi di Input HTML

HTML offre diversi tipi di input. Ecco i piรน usati:

๐Ÿ“ text

Testo generico

๐Ÿ“ง email

Email (con validazione)

๐Ÿ”ข number

Solo numeri

๐Ÿ“… date

Selettore data

๐ŸŽจ color

Selettore colore

๐Ÿ“Š select

Menu a tendina

๐ŸŽฏ Come Prendere i Valori

Per leggere cosa ha scritto l'utente, usa la proprietร  .value

Metodo Base

JavaScript
// 1. Seleziona l'input
const nomeInput = document.querySelector('#nome');

// 2. Prendi il valore
const nomeUtente = nomeInput.value;

console.log(nomeUtente); // Stampa quello che l'utente ha scritto

Con l'Evento 'input' (In Tempo Reale)

JavaScript
const nomeInput = document.querySelector('#nome');

// Si attiva OGNI volta che l'utente scrive/cancella
nomeInput.addEventListener('input', function() {
    const valore = nomeInput.value;
    console.log('Hai scritto:', valore);
});

โš ๏ธ IMPORTANTE: Gli Input Restituiscono Stringhe!

.value restituisce SEMPRE una stringa, anche per input di tipo "number"!

const etร  = document.querySelector('#etร ').value;
console.log(typeof etร ); // "string" โ† รˆ una stringa!

// Per usarlo come numero, converti:
const etร Numero = Number(etร );  // Converte in numero
console.log(typeof etร Numero); // "number" โ† Ora รจ un numero!

โœ๏ธ Esercizio Guidato: Generatore di Saluti

Crea un form che chiede nome e lingua, poi genera un saluto personalizzato!

๐Ÿ“‹ Cosa Devi Fare

  1. Seleziona i due input (#greetName e #greetLang)
  2. Seleziona il bottone #btnGreet
  3. Seleziona dove mostrare il saluto #greetingOutput
  4. Aggiungi un evento click al bottone
  5. Prendi i valori dagli input
  6. Crea un saluto diverso per ogni lingua
  7. Mostra il saluto nel div output

๐Ÿ“ Struttura HTML da Usare

Ecco gli elementi HTML con cui lavorerai:

HTML - Elementi del Form
<!-- Input nome -->
<input id="greetName" type="text" placeholder="Il tuo nome">

<!-- Select lingua -->
<select id="greetLang">
    <option value="it">Italiano</option>
    <option value="en">English</option>
    <option value="es">Espaรฑol</option>
    <option value="fr">Franรงais</option>
</select>

<!-- Bottone -->
<button id="btnGreet">Genera Saluto</button>

<!-- Output -->
<div id="greetingOutput"></div>
๐Ÿ“Œ IDs da Usare nel JavaScript:
  • #greetName โ†’ Input nome utente
  • #greetLang โ†’ Select lingua (valori: "it", "en", "es", "fr")
  • #btnGreet โ†’ Bottone per generare il saluto
  • #greetingOutput โ†’ Dove mostrare il saluto

๐Ÿ’ก Hint: Usa if/else per i saluti: "Ciao" (it), "Hello" (en), "Hola" (es), "Bonjour" (fr)

๐Ÿ‘‹ Il saluto apparirร  qui

๐ŸŽฎ Progetto Finale: Form Iscrizione Completo

รˆ il momento del progetto vero! ๐Ÿš€

Creerai un form di iscrizione che:

  • โœ… Raccoglie nome, email, etร , paese
  • โœ… Valida che tutti i campi siano compilati
  • โœ… Converte l'etร  in numero
  • โœ… Genera una card profilo personalizzata
  • โœ… Mostra emoji in base al paese selezionato

๐ŸŽฏ Obiettivi del Progetto

  • โœ… Form con 4 campi input
  • โœ… Validazione campi vuoti (if)
  • โœ… Conversione etร  in numero
  • โœ… Template literal per creare la card
  • โœ… innerHTML per mostrare HTML
  • โœ… Reset del form dopo l'iscrizione

๐Ÿ“ Riferimento Elementi HTML

Prima di iniziare, ecco tutti gli ID che userai:

HTML - Mappa degli Elementi
<!-- Form Input -->
<input id="regName" type="text" placeholder="Nome">
<input id="regEmail" type="email" placeholder="Email">
<input id="regAge" type="number" placeholder="Etร ">
<select id="regCountry">
    <option value="italia">Italia</option>
    <option value="francia">Francia</option>
    <option value="spagna">Spagna</option>
    <option value="germania">Germania</option>
</select>

<!-- Bottoni -->
<button id="btnRegister">Iscriviti</button>

<!-- Output -->
<div id="userCardOutput"></div>
๐Ÿ“Œ Guida Rapida IDs:
Input:
  • #regName โ†’ Nome
  • #regEmail โ†’ Email
  • #regAge โ†’ Etร 
  • #regCountry โ†’ Paese
Controlli:
  • #btnRegister โ†’ Iscriviti
  • #userCardOutput โ†’ Output card

๐Ÿ’ก Emoji paesi: ๐Ÿ‡ฎ๐Ÿ‡น italia, ๐Ÿ‡ซ๐Ÿ‡ท francia, ๐Ÿ‡ช๐Ÿ‡ธ spagna, ๐Ÿ‡ฉ๐Ÿ‡ช germania

๐Ÿ“ Il Progetto Live

๐Ÿ“ Iscriviti Ora!

Compila il form per creare il tuo profilo

๐Ÿ’ป Scrivi il Codice del Progetto

Segui i commenti e completa il codice:

๐ŸŽฏ Conclusione: Sei un Input Master!

โœ… Recap: Cosa Hai Imparato

  • โœ… I tipi di input HTML (text, email, number, date, select...)
  • โœ… Prendere valori con .value
  • โœ… Usare addEventListener('input') per tempo reale
  • โœ… Convertire stringhe in numeri con Number()
  • โœ… Validare input (controllo campi vuoti)
  • โœ… Creare card profilo con template literals e innerHTML

๐Ÿš€ Challenge: Vai Oltre!

Migliora il form iscrizione aggiungendo:

  • ๐Ÿ”’ Password: Aggiungi campo password e conferma password
  • โœ… Checkbox: Aggiungi "Accetto i termini"
  • ๐Ÿ“… Data Nascita: Usa input type="date" invece di etร 
  • ๐ŸŽจ Avatar Iniziali: Mostra le iniziali del nome nell'avatar
  • ๐Ÿ’พ Lista Utenti: Salva tutti gli utenti in un array

๐Ÿ“š Prossima Lezione

Nella Lezione 6 imparerai le Condizioni (If/Else)! Farai prendere decisioni intelligenti al tuo codice! ๐Ÿค”

๐Ÿ’พ Esercizi Pratici da Scaricare

Pronto a padroneggiare gli input? Ho preparato 3 esercizi progressivi per praticare .value, conversioni e validazione!

HTML e CSS pronti - tu completi solo il JavaScript! ๐Ÿš€

๐Ÿ“ฆ

Scarica Tutti gli Esercizi

3 esercizi: contatore, calcolatore etร , form contatto

๐Ÿ“ฅ Scarica ZIP

Pratica .value, Number(), addEventListener('input')!

01
โญโญ Medio โฑ๏ธ 15-20 min

๐Ÿ“ Contatore Caratteri

Conta caratteri in tempo reale! Usa addEventListener('input') e .length per aggiornare istantaneamente.

โœ… .value โœ… addEventListener('input') โœ… .length ๐ŸŒŸ Bonus: Colore se > limite
02
โญโญ Medio โฑ๏ธ 20-25 min

๐ŸŽ‚ Calcolatore Etร 

Dall'anno di nascita all'etร ! Usa Number() per convertire l'input e calcolare l'etร  + generazione.

โœ… Number() conversione โœ… Calcoli matematici โœ… if/else generazioni ๐ŸŒŸ Bonus: Validazione
03
โญโญโญ Difficile โฑ๏ธ 25-30 min

๐Ÿ“ง Form Contatto Completo

Form con 4 campi, validazione, e card riepilogo! Usa template literals e innerHTML per l'output.

โœ… Validazione campi โœ… Template literals โœ… innerHTML โœ… Reset form

๐Ÿ“ฆ Cosa Include

๐Ÿ“
.value

Prendere valori dagli input

โšก
Eventi input

Tempo reale con addEventListener

๐Ÿ”ข
Number()

Conversione stringhe โ†’ numeri

โœ…
Validazione

Controllo campi vuoti

๐Ÿš€ Pronto per gli Input?

Scarica e diventa un Input Master!

๐Ÿ“ฅ Scarica Esercizi