Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Cálculo com variáveis Input

Boa tarde! Arrecem terminei o curso de Lógica e estava fazendo algo para fixar bem as aulas.

Eu trabalho atualmente como Consultor tecnico em uma Concessionária da Ford e pensei em fazer um programa básico para calcular o valor dos produtos que vendo que geram uma comissão extra no resultado final. Porém Não consegui agregar o valor dos inputs no meu programa, o resultado final está dando sempre zero. Eis o meu código:

<meta charset="UTF-8">

<h1>Relatório Wurth</h1><br><br>

Químicos <input name="quimicos" size="3" maxlength="3"> <br><br>

HSW <input  name="hsw" size="3" maxlength="3"> <br><br>

Condicionador de metais <input name="condMetais" size="3" maxlength="3"> <br><br>

Desengraxante <input name="desengraxante" size="3" maxlength="3"> <br><br>

<button><h1>CALCULAR</h1></button>


<script >
function pulaLinha() {
    document.write("<br><hr><br>");
}

function mostra(frase) {
    document.write(frase);
    pulaLinha();
}

var nome = prompt("Insira seu NOME");
var mes = prompt("Insira o mês");
var quimicos = document.querySelector("#quimicos");
var hsw = document.querySelector("#hsw");
var condMetais = document.querySelector("#condMetais");
var desengraxante = document.querySelector("#desengraxante");
var botaoCalcula = document.querySelector("button");
var total = parseInt((quimicos*2) + (hsw*3) + (condMetais*3) + (desengraxante*3));

mostra("<h1>Informações de venda </h1>" + nome);

function calcula() {
    mostra(nome + ", você tem R$ " + total + " acumulado em " + mes);
}

botaoCalcula.onclick = calcula;

</script>
1 resposta
solução!

Olá, Felipe. Tudo bem?

Agradeço por aguardar um retorno =)

Primeiramente, a forma como você está capturando os seus inputs com # não está correta, a forma correta seria dessa forma:

var quimicos = document.querySelector("[name='quimicos']");
var hsw = document.querySelector("[name='hsw']");
var condMetais = document.querySelector("[name='condMetais']");
var desengraxante = document.querySelector("[name='desengraxante']")

O seletor # é usado para capturar o elemento por id, neste caso você está tentando capturar pelo atributo name, por isso se faz necessário capturar da forma como é mostrado acima.

Para você conhecer mais formas de capturar com querySelector recomendo você fazer essas leituras:

Outra coisa, é que você precisa mover a parte onde você faz o cálculo total para dentro da função calcula() e precisa adicionar .value ao final de cada variável que será usada para fazer a operação matemática, pois você precisa especificar que quer apenas valor que foi digitado nos inputs.

function calcula() {
    var total = parseInt((quimicos.value*2) + (hsw.value*3) + (condMetais.value*3) + (desengraxante.value*3));
    mostra(nome + ", você tem R$ " + total + " acumulado em " + mes);
}

Só para esclarecer melhor, você precisa adicionar o cálculo total dentro da função calcula(), pois o cálculo só deve ser feito após o usuário ter digitado todos os valores, ou seja, quando os valores já foram digitados e o botão Calcular for acionado, será chamada a função calcula() para realizar todo o cálculo e impressão do resultado.

Espero ter ajudado, Felipe =)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓