0Pricing
HTML Academy · Aula

O elemento button: submit, reset e button

Acionar o envio ou a reposição de formulários e ações personalizadas com botões.

O elemento button: submit, reset e button é uma aula grátis de HTML Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de HTML Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de HTML Academy inclui 4 aulas no total.

O elemento button

O elemento <button> é a principal forma de criar controles clicáveis:

<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" envia o formulário quando é clicado:

<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" limpa todos os campos do formulário, restaurando seus valores padrão:

<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" não faz nada por padrão — associe 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 versus input[type=submit]

<button> é preferível 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 -->

Botão desativado

Desative um botão com o atributo 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;

Padrão de estado de carregamento

Mostre o estado de carregamento enquanto um formulário está sendo enviado:

<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>

Substituições de ação e método do formulário

Substitua a ação ou o método do formulário em um botão específico:

<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>

Botão com ARIA

Botões personalizados precisam de ARIA quando têm aparência diferente da dos botões nativos:

<!-- 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>

Boas práticas de acessibilidade para botões

Lista de verificação de acessibilidade para botões:

  • Especifique sempre type — nunca dependa do valor padrão
  • Use aria-label em botões que contenham apenas ícones
  • Use aria-pressed em botões toggle
  • Para botões desativados, considere usar aria-disabled="true" + JavaScript para mantê-los focáveis
  • Nunca use <div> ou <span> como botões

Área de clique e alvos de toque

Os botões devem ter uma área de toque suficientemente grande para usuários de dispositivos sensíveis ao toque:

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ção rápida

O que acontece se o atributo type for omitido de um botão dentro de um formulário?

Recapitulação: elemento button

Essenciais dos botões:

  • type="submit" — envia o formulário
  • type="reset" — redefine todos os campos para os valores padrão
  • type="button" — nenhum comportamento padrão; associe JavaScript
  • Especifique sempre type — o padrão é submit
  • Prefira <button> a <input type="submit">
  • Use aria-label em botões que contenham apenas ícones

Perguntas Frequentes

A aula “O elemento button: submit, reset e button” é grátis?

Sim — o texto completo de “O elemento button: submit, reset e button” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de HTML Academy, atualize para CoddyKit PRO. O curso de HTML Academy inclui 4 aulas no total.

O que vou aprender em “O elemento button: submit, reset e button”?

Acionar o envio ou a reposição de formulários e ações personalizadas com botões. Você pratica HTML Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar HTML Academy?

Nenhuma experiência prévia é necessária. HTML Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “O elemento button: submit, reset e button”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de HTML Academy?

Sim. Cada aula de HTML Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. O elemento form: action, method e enctype
  2. Tipos de input: text, password, email, number e tel
  3. O elemento label e a acessibilidade
  4. O elemento button: submit, reset e button
← Voltar para HTML Academy