๐ 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:
๐ค 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:
Testo generico
Email (con validazione)
Solo numeri
Selettore data
Selettore colore
Menu a tendina
๐ฏ Come Prendere i Valori
Per leggere cosa ha scritto l'utente, usa la proprietร .value
Metodo Base
// 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)
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
- Seleziona i due input (#greetName e #greetLang)
- Seleziona il bottone #btnGreet
- Seleziona dove mostrare il saluto #greetingOutput
- Aggiungi un evento click al bottone
- Prendi i valori dagli input
- Crea un saluto diverso per ogni lingua
- Mostra il saluto nel div output
๐ Struttura HTML da Usare
Ecco gli elementi HTML con cui lavorerai:
<!-- 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>
#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)
๐ฎ 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:
<!-- 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>
#regNameโ Nome#regEmailโ Email#regAgeโ Etร#regCountryโ Paese
#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
๐พ 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 ZIPPratica .value, Number(), addEventListener('input')!
๐ Contatore Caratteri
Conta caratteri in tempo reale! Usa addEventListener('input') e .length per aggiornare istantaneamente.
๐ Calcolatore Etร
Dall'anno di nascita all'etร ! Usa Number() per convertire l'input e calcolare l'etร + generazione.
๐ง Form Contatto Completo
Form con 4 campi, validazione, e card riepilogo! Usa template literals e innerHTML per l'output.
๐ฆ Cosa Include
Prendere valori dagli input
Tempo reale con addEventListener
Conversione stringhe โ numeri
Controllo campi vuoti