Como habilitar um botão apenas quando os inputs estiverem preenchidos

Neste artigo você vai aprender a como habilitar um botão apenas quando os inputs estiverem preenchidos, possibilitando o envio do formulário

habilitar um botão apenas quando os inputs estiverem preenchidos capa

Fala programador(a), beleza? Bora aprende a como habilitar o envio do form somente com todos os campos preenchidos

Primeiramente vamos criar o nosso formulário com HTML, veja código de exemplo:

<form action="" id="form">
  <input type="text" placeholder="Digite seu nome">
  <input type="text" placeholder="Digite seu sobrenome">
  <button type="submit" disabled="disabled">Enviar</button>
</form>
Formação Claude Code
Formação Recomendada

Formação Claude Code

Domine Claude Code do absoluto zero até o avançado

  • 114 aulas
  • 4 projetos
  • 9h 15min

Aqui teremos apenas dois campos, mas você pode ter quantos precisar para a sua regra de negócios

É importante também citar que o button começa com o atributo de disabled, não habilitando o envio do formulário

Agora vamos ao código de JavaScript:

function checkInputs(inputs) {

  var filled = true;
  
  inputs.forEach(function(input) {
  	
    if(input.value === "") {
    	filled = false;
    }
  
  });
  
  return filled;
  
}

var inputs = document.querySelectorAll("input");
var button = document.querySelector("button");

inputs.forEach(function(input) {
    
  input.addEventListener("keyup", function() {

    if(checkInputs(inputs)) {
      button.disabled = false;
    } else {
      button.disabled = true;
    }

  });

});

Primeiramente temos a função checkInput, que vai realizar um loop em cada um dos inputs e verificar se o valor está preenchido

Caso algum deles esteja, a variável filled fica setada como false, fazendo com que o retorno seja falso e isso determina que o formulário não está completamente preenchido

Depois temos um evento em cada um dos inputs, que é ativado com o keyup

Neste evento vamos realizar o disparo da função a cada tecla digitada, para verificar se liberamos o formulário ou não

E se os campos estiverem preenchidos vamos mudar o valor do atributo disabled para false

Caso o usuário volte a remover dados do input, ainda fazemos a checagem e se necessário alteramos o input para disabled novamente

Conclusão

Neste artigo vimos como habilitar um botão apenas quando os inputs estiverem preenchidos

Criamos uma função que checa o valor do input, e retorna verdadeiro ou falso, depende se todos os campos estão preenchidos ou não

Com a resposta deste retorno controlamos o atributo disabled do nosso input de formulário, para permitirmos o usuário enviar ou não o mesmo

Confira também nosso catálogo de cursos gratuitos, com aulas semanais no YouTube

Escrito por | Matheus Battisti

Matheus Battisti
Fundador da Hora de Codar

Programador apaixonado pelo mundo das tecnologias, sempre buscando em aprender e se aprofundar em linguagens, frameworks e o que mais for necessário para executar um bom trabalho. Agora tem uma nova missão que é de passar seu conhecimento adiante para formar novos programadores e especializar mais os que já são.

Subscribe
Notify of
guest

6 Comentários
Oldest
Newest Most Voted
Rogerio

Olá como uso essa mesma função em um formulario de etapas, tentei colocar esse codigo no final do meu script, mais o botão de proximo ficou desativado mesmo preenchendo os campos 🙁

Suzana

Valeeeu!!! Ajudou muito!

Battisti

show Suzana!

donizete

ótima explicação e simplificada

Battisti

valeu Donizete!

Reinaldo

Como faço para botão habilitar depois que eu digitar 12 caracteres no JavaScript

Formações

Formação Vibe Coding

Formação Vibe Coding

Do Prompt ao Produto: Crie Software Real com IA

  • 474 aulas
  • 20 projetos
  • 39h 27min

Blog | Mais populares