Menu

Tipi di input HTML: tutti i 22 tipi del tag input

Tutti i tipi del tag <input> di HTML in un solo posto: text, email, password, number, range, date e time, color, file, hidden e gli altri, con cosa valida ognuno, la tastiera che apre sui telefoni e gli attributi che condividono.

Questa pagina include editor eseguibili: modifica, esegui e vedi subito l'output.

Il tag input e i suoi tipi

<input> è un campo di un form, e il suo attributo type decide di che genere. Lo stesso tag crea una casella di testo, un cursore, un selettore di date o di colori. Prova ogni campo qui sotto e premi Submit per vedere cosa invia il form:

<input> è un elemento vuoto, quindi non ha tag di chiusura. Il suo name è la chiave con cui viene inviato il valore, e value è il valore iniziale. Un type mancante o scritto male dà un semplice campo di testo.

Tutti i tipi di input HTML

typeCos'èNote
textUna riga di testoIl predefinito
passwordTesto mostrato come puntiniNon è cifrato di per sé; invialo tramite HTTPS
emailUn indirizzo emailValida il formato; tasto @ sulle tastiere dei telefoni
urlUn indirizzo webDeve iniziare con uno schema come https://
telUn numero di telefonoTastierino telefonico sui cellulari, nessun controllo del formato
searchUna casella di ricercaSpesso mostra un pulsante per cancellare
numberUn numeroFrecce di incremento, min, max, step
rangeUn cursoreImpreciso per scelta; il valore è un numero
dateUna dataIl valore è YYYY-MM-DD
timeUn orarioIl valore è HH:MM (24 ore)
datetime-localData e ora, senza fuso orarioIl valore è YYYY-MM-DDTHH:MM
monthUn anno e un meseNon supportato in tutti i browser
weekUn anno e un numero di settimanaNon supportato in tutti i browser
colorUn selettore di coloriIl valore è #rrggbb in minuscolo
checkboxUna casella acceso/spentoVedi checkbox HTML
radioUna scelta tra un gruppoVedi radio button HTML
fileUn selettore di fileaccept, multiple
hiddenUn valore inviato ma non mostratoPer ID e token
submitUn pulsante di invio<button type="submit"> è più flessibile
resetUn pulsante di resetRaramente è una buona idea
buttonUn pulsante che da solo non fa nientePer JavaScript
imageUn pulsante di invio disegnato come immagineInvia anche le coordinate del clic

Tipi di testo e tastiere dei telefoni

email, url, tel, search e text sembrano tutti una casella di testo su un computer. La differenza è nella validazione e, sui telefoni, nella tastiera che si apre. Il bordo in questo esempio diventa verde o rosso a seconda di come il browser giudica il valore:

  • ada@example per il browser è un'email valida: controlla solo che ci siano del testo, @ e un dominio, non che il dominio abbia un punto. Il vero controllo avviene sul server.
  • example.com non è un url valido, perché non ha uno schema. https://example.com sì.
  • tel accetta qualsiasi cosa. I formati dei numeri di telefono cambiano troppo da un paese all'altro, quindi non c'è un controllo integrato; aggiungi un pattern se ti serve.
  • inputmode="numeric" chiede ai telefoni una tastiera numerica senza i problemi di type="number", ed è per questo che è la scelta giusta per CAP, codici monouso e numeri di carta.

number e range

Entrambi accettano min, max e step. number è per i valori esatti; range è un cursore per valori in cui il numero preciso conta meno. Un cursore range non mostra nessun numero, quindi abbinalo a un <output>:

step vale 1 di default per number, quindi un campo prezzo senza step="0.01" rifiuta 4.99 quando il form viene inviato. In JavaScript, input.value è sempre una stringa; usa input.valueAsNumber per ottenere un numero.

Date e orari

I tipi per date e orari aprono il selettore del browser. Quello che si vede segue le impostazioni locali di chi legge (09/24/2026, 24.09.2026), ma il valore ha sempre lo stesso formato fisso:

Quel formato fisso è ciò che riceve il server e ciò che legge JavaScript, quindi non devi mai interpretare "24.09.2026". min e max usano lo stesso formato. datetime-local non ha fuso orario: se conta, converti sul server usando il fuso di chi compila.

color e file

accept="image/*" limita il selettore di file alle immagini (e sui telefoni offre la fotocamera); accetta anche estensioni, come accept=".pdf,.docx". È solo un suggerimento per il selettore, quindi controlla il tipo di file sul server. multiple permette più file. Un vero caricamento richiede anche method="post" e enctype="multipart/form-data" sul form.

Suggerimenti con datalist

Un <datalist> dà a un campo di testo un elenco di suggerimenti permettendo comunque qualsiasi valore. Collegali con l'attributo list:

Scrivi "ja" nel campo per vedere i suggerimenti corrispondenti. A differenza di una select, si può scrivere un valore che non è nell'elenco.

Attributi che funzionano sugli input

AttributoCosa fa
nameLa chiave con cui viene inviato il valore
valueIl valore iniziale
placeholderUn suggerimento mostrato finché il campo è vuoto (non è un'etichetta)
requiredVa compilato prima dell'invio
disabledNon si può usare e non viene inviato
readonlyNon si può modificare, ma viene inviato
autocompleteCosa compilare in automatico: email, name, current-password, one-time-code, off
min, max, stepLimiti per numeri, intervalli, date e orari
minlength, maxlengthLimiti di lunghezza per i tipi di testo
patternUn'espressione regolare a cui deve corrispondere l'intero valore
inputmodeQuale tastiera mostrare sui telefoni: numeric, decimal, email, tel, url
listL'id di un <datalist>
multiplePiù valori, per email e file
acceptTipi di file per file

Errori comuni

  • type="number" per numeri di telefono, CAP o numeri di carta. Non sono quantità. Usa tel o text con inputmode="numeric".
  • Un campo prezzo senza step="0.01". I valori decimali non superano la validazione.
  • Usare placeholder come etichetta. Sparisce appena si inizia a scrivere.
  • Affidarsi ad accept o a type="email" per la sicurezza. Sono comodità; il server ricontrolla.
  • type="month" o type="week" senza alternativa. Alcuni browser mostrano un semplice campo di testo.
  • Un tag di chiusura </input>. <input> è vuoto.

Domande frequenti

Quanti tipi di input ci sono in HTML?

22: button, checkbox, color, date, datetime-local, email, file, hidden, image, month, number, password, radio, range, reset, search, submit, tel, text, time, url e week. Un tipo sconosciuto o mancante si comporta come text.

Qual è il tipo di input predefinito in HTML?

text. Un <input> senza type, o con un tipo che il browser non conosce, è un campo di testo su una riga.

Devo usare type="number" per numeri di telefono o CAP?

No. number è per le quantità: aggiunge le frecce di incremento e rifiuta il +, gli spazi e i trattini che contengono i numeri di telefono. Usa type="tel" per i numeri di telefono, e type="text" con inputmode="numeric" per codici come CAP e numeri di carta.

Che formato usa input type date?

Il valore è sempre YYYY-MM-DD, come 2026-09-24, qualunque sia il formato che si vede sullo schermo. La visualizzazione segue le impostazioni locali di chi legge; il valore inviato e letto dagli script no.

Il tag input ha bisogno di un tag di chiusura?

No. <input> è un elemento vuoto: scrivi <input type="text" name="city">. Un </input> di chiusura non è valido, e la barra di autochiusura in <input /> è permessa ma non fa nulla.

Illustrazione dei linguaggi di programmazione di Coddy

Impara a programmare con Coddy

INIZIA