HTML Academy · Lezione

L’elemento button: submit, reset e button

Attivare l’invio o il reset del form oppure azioni personalizzate con i pulsanti

Lezione 4 di 413 passaggi

L’elemento button: submit, reset e button è una lezione HTML Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. 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 HTML Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso HTML Academy include 4 lezioni in totale.

L'elemento button

L'elemento <button> è il modo principale per creare controlli cliccabili:

<button type="submit">Submit</button>
<button type="reset">Clear Form</button>
<button type="button">Do Something</button>

<!-- Three types, each with a different default behavior -->
<!-- Always specify type — the default is submit inside forms -->

type=submit

type="submit" invia il modulo quando viene selezionato:

<form action="/register" method="post">
  <input type="email" name="email">
  <button type="submit">Create Account</button>
</form>
<!-- Triggers form validation, then sends the form data -->
<!-- Also triggered by pressing Enter in most text inputs -->

type=reset

type="reset" cancella tutti i campi del modulo e li ripristina ai valori predefiniti:

<form>
  <input type="text" name="name" value="">  <!-- empty default -->
  <input type="number" name="qty" value="1">  <!-- default: 1 -->
  <button type="reset">Clear</button>
</form>
<!-- Clicking reset restores qty to 1 and clears name -->
<!-- Use sparingly — users often accidentally reset forms -->

type=button

type="button" non esegue alcuna azione per impostazione predefinita — occorre collegarvi JavaScript:

<button type="button" id="toggle-theme">Toggle Dark Mode</button>

<script>
document.getElementById('toggle-theme').addEventListener('click', () => {
  document.body.classList.toggle('dark');
});
</script>
<!-- type="button" prevents accidental form submission
     Always use this for non-submit buttons -->

button rispetto a input[type=submit]

È preferibile usare <button> rispetto a <input type="submit">:

<!-- Old way (limited): -->
<input type="submit" value="Submit">

<!-- Modern way (flexible — can contain HTML): -->
<button type="submit">
  <svg><!-- icon --></svg>
  Submit Form
</button>
<!-- button can contain icons, emphasis, and any inline HTML
     input type=submit can only have plain text via the value attribute -->

Pulsante disabilitato

Disabilitare un pulsante con l'attributo disabled:

<button type="submit" disabled>Submit</button>
<!-- Disabled buttons:
  - Cannot be clicked
  - Not in tab order
  - NOT submitted with the form
  - Browser renders them grayed out -->

<!-- Enable/disable with JavaScript: -->
btn.disabled = true;
btn.disabled = false;

Schema dello stato di caricamento

Mostrare lo stato di caricamento durante l'invio di un modulo:

<button type="submit" id="submit-btn">
  <span id="btn-text">Submit</span>
  <span id="btn-spinner" hidden aria-hidden="true">⏳</span>
</button>

<script>
form.addEventListener('submit', () => {
  document.getElementById('submit-btn').disabled = true;
  document.getElementById('btn-text').textContent = 'Submitting...';
  document.getElementById('btn-spinner').hidden = false;
  document.getElementById('btn-spinner').removeAttribute('aria-hidden');
});
</script>

Override di formaction e formmethod

Sovrascrivere l'azione o il metodo del modulo per un pulsante specifico:

<form action="/save" method="post">
  <input type="text" name="title">

  <!-- Save: uses form defaults -->
  <button type="submit">Save Draft</button>

  <!-- Publish: overrides action and method -->
  <button type="submit" formaction="/publish" formmethod="post">
    Publish Now
  </button>
</form>

Pulsante con ARIA

I pulsanti personalizzati richiedono ARIA se hanno un aspetto diverso dai pulsanti nativi:

<!-- Icon-only button -->
<button type="button" aria-label="Close dialog">
  <svg aria-hidden="true"><!-- X icon --></svg>
</button>

<!-- Toggle button -->
<button type="button" aria-pressed="false" id="bold-btn">
  Bold
</button>
<script>
document.getElementById('bold-btn').addEventListener('click', function() {
  const pressed = this.getAttribute('aria-pressed') === 'true';
  this.setAttribute('aria-pressed', !pressed);
});
</script>

Procedure consigliate per l'accessibilità dei pulsanti

Elenco di controllo per l'accessibilità dei pulsanti:

  • Specificare sempre type — non fare mai affidamento sul valore predefinito
  • Usare aria-label per i pulsanti composti solo da icone
  • Usare aria-pressed per i pulsanti di attivazione
  • Per i pulsanti disabilitati, valutare l'uso di aria-disabled="true" + JavaScript per mantenerli focalizzabili
  • Non usare mai <div> o <span> come pulsanti

Area di clic e target tattili

I pulsanti devono avere un'area di tocco sufficientemente ampia per gli utenti che usano dispositivi touch:

button {
  min-height: 44px;   /* Apple HIG minimum */
  min-width: 44px;    /* WCAG 2.5.5 (AAA) recommends 44x44 -->
  padding: 0.5rem 1rem;
  cursor: pointer;
}

/* Increase tap area without changing visual size: */
button {
  position: relative;
}
button::before {
  content: '';
  position: absolute;
  inset: -8px;
}

Verifica rapida

Che cosa succede se si omette l'attributo type da un pulsante all'interno di un modulo?

Riepilogo: elemento button

Elementi essenziali dei pulsanti:

  • type="submit" — invia il modulo
  • type="reset" — ripristina tutti i campi ai valori predefiniti
  • type="button" — nessun comportamento predefinito; occorre collegarvi JavaScript
  • Specificare sempre type — il valore predefinito è submit
  • Preferire <button> a <input type="submit">
  • Usare aria-label per i pulsanti composti solo da icone
Gratis per iniziare

Impara HTML con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
40
Lezioni
159

Domande Frequenti

La lezione «L’elemento button: submit, reset e button» è gratuita?

Sì — il testo completo di «L’elemento button: submit, reset e button» è 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 HTML Academy, passa a CoddyKit PRO. Il corso HTML Academy include 4 lezioni in totale.

Cosa imparerò in «L’elemento button: submit, reset e button»?

Attivare l’invio o il reset del form oppure azioni personalizzate con i pulsanti Eserciti HTML 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 HTML Academy?

Non è richiesta alcuna esperienza precedente. HTML 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 4 di 4.

Quanto tempo richiede la lezione «L’elemento button: submit, reset e button»?

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 HTML Academy?

Sì. Ogni lezione HTML 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. L’elemento form: action, method ed enctype
  2. Tipi di input: text, password, email, number e tel
  3. L’elemento label e l’accessibilità
  4. L’elemento button: submit, reset e button
← Torna a HTML Academy