Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

index.js:33 Uncaught TypeError: campos[0].focus is not a function

Ao clicar no botão Incluir, eu consigo incluir a linha na tabela, porém recebo um erro no console referente ao uso da função focus() no elemento

var campos = [
    document.querySelector('#data'),
    document.querySelector('#quantidade'),
    document.querySelector('#valor')
];

console.log(campos);

document.querySelector('.form').addEventListener('submit', function(event){

    event.preventDefault();

    var tbody = document.querySelector('tbody');
    var tr = document.createElement('tr');

    campos.forEach(function(campo){
        var td = document.createElement('td');
        td.textContent = campo.value;
        tr.appendChild(td);
    })

    var tdVolume = document.createElement('td');
    tdVolume.textContent = campos[1].value * campos[2].value;

    tr.appendChild(tdVolume);

    tbody.appendChild(tr);

    campos[0] = '';
    campos[1] = "";
    campos[2] = "";

    campos[0].focus();

});
2 respostas

Oi Rodolfo tudo bem?

Poderia colocar a pasta do seu projeto no github por gentileza. Assim podemos analisar melhor o que está acontecendo.

solução!

Boa noite, Rodolfo! Como vai?

Veja que na linha campos[0] = '' vc atribui uma string à campos[0]. Daí na última linha do código vc faz campos[0].focus(), só que o método focus() só pode ser usado num elemento HTML e não numa string! Por isso ocorre o erro! Para que tudo funcione como esperado, vc deverá fazer:

// Restante do código omitido.

campos[0].value = '';
campos[1].value = '';
campos[2].value = '';

campos[0].focus();

Dica: Sempre que vc tiver problema em seus códigos e ocorrer algum erro, ao postar aqui no fórum mande também o log completo do erro além do seu código! Fazendo assim facilitará na hora de alguém colaborar com a sua dúvida!

Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!