É possível utilizar um evento onkeyup
ou onchange
no input do CNPJ para fazer uma requisição à API do BrasilAPI e preencher automaticamente os demais campos do formulário.
Por exemplo, você pode criar uma função JavaScript que faz uma requisição AJAX à API do BrasilAPI quando o usuário digita ou altera o CNPJ no input correspondente, e então preenche automaticamente os demais campos do formulário com os dados retornados pela API.
Aqui está um exemplo básico de como isso pode ser feito utilizando a biblioteca jQuery:
<form>
<label for="cnpj">CNPJ:</label>
<input type="text" id="cnpj" name="cnpj" onkeyup="buscarDadosCNPJ(this.value)" onchange="buscarDadosCNPJ(this.value)">
<label for="nome">Nome:</label>
<input type="text" id="nome" name="nome">
<label for="endereco">Endereço:</label>
<input type="text" id="endereco" name="endereco">
<label for="telefone">Telefone:</label>
<input type="text" id="telefone" name="telefone">
</form>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
function buscarDadosCNPJ(cnpj) {
// remove todos os caracteres não numéricos do CNPJ
cnpj = cnpj.replace(/\D/g, '');
// verifica se o CNPJ possui 14 dígitos
if (cnpj.length === 14) {
// faz uma requisição AJAX à API do BrasilAPI
$.get('https://brasilapi.com.br/api/cnpj/v1/' + cnpj, function (dados) {
// preenche os campos do formulário com os dados retornados pela API
$('#nome').val(dados.nome);
$('#endereco').val(dados.endereco);
$('#telefone').val(dados.telefone);
});
}
}
</script>
Neste exemplo, a função buscarDadosCNPJ
é chamada sempre que o usuário digita ou altera o CNPJ no input correspondente. A função remove todos os caracteres não numéricos do CNPJ, verifica se ele possui 14 dígitos e, caso positivo, faz uma requisição AJAX à API do BrasilAPI utilizando a função $.get
do jQuery. Em seguida, a função preenche automaticamente os campos do formulário com os dados retornados pela API.
Lembre-se de que é importante tratar os possíveis erros de requisição e validações de dados retornados pela API, para que o script não falhe ou apresente informações incorretas.