Problems with Javascript

Asked

Viewed 52 times

0

Good guys, I’m having problems with my javascript. I have two functions and when I add one more it stops working all. The two functions are these:

 function calculaResultado(x){        
        console.log(x);
        a = document.getElementById('avInicial' + x).value;
        b = document.getElementById('meta' + x).value;
        c = document.getElementById('avFinal' + x).value;

        let resultado = ((c*100)/b);

        if(b === c){
            resultado = 100; //100%
        } else if (a > c) {
            resultado = 0; // 0%
        } 
        else {
            resultado = parseInt(resultado);
        }

        document.getElementById('resultado' + x).value =  resultado; 

        calculaMediaFinal();
    }

    function calculaMediaFinal() {
      let soma = 0;
      let contador = 0;
      for (var i = 1; i <= 12; i++) { 
        if (document.getElementById('resultado' + i).value) {
          soma += parseInt(document.getElementById('resultado' + i).value, 10);
          contador++;
        }
      }
      var media = soma / contador;
      var inputCuboMedia = document.getElementById('ConcretizaObj');
      inputCuboMedia.value = parseInt(media, 10);
    }

and the function I want to insert even more is this:

    function ContaObjetivos(){
        let contador = 0;
        for (var = 1; i <= 12; i++){
            if (document.getElementById('resultado' + i).value) {
          contador++;
        }
    }

    var inputCount = document.getElementById('ObjDefinidos');
    }

What’s wrong to stop working when I add this last?

  • You use some debug tool?

  • @Diego when use appears that the function culculaResulted is not recognized.

2 answers

3


In the last method, within the for you are not declaring the variable i.

Change this:

for (var = 1; i <= 12; i++){

therefore:

for (var i = 1; i <= 12; i++){
  • Thank you very much, but continue to stop all other functions

0

I put its functions together with the correction that @Arnaldo commented and it worked, see the proof:

function calculaResultado(x) {
    console.log(x);
    a = document.getElementById('avInicial' + x).value;
    b = document.getElementById('meta' + x).value;
    c = document.getElementById('avFinal' + x).value;

    let resultado = ((c * 100) / b);

    if (b === c) {
        resultado = 100; //100%
    } else if (a > c) {
        resultado = 0; // 0%
    } else {
        resultado = parseInt(resultado);
    }

    document.getElementById('resultado' + x).value = resultado;

    calculaMediaFinal();
}

function calculaMediaFinal() {
    let soma = 0;
    let contador = 0;
    for (var i = 1; i <= 12; i++) {
        if (document.getElementById('resultado' + i).value) {
            soma += parseInt(document.getElementById('resultado' + i).value, 10);
            contador++;
        }
    }
    var media = soma / contador;
    var inputCuboMedia = document.getElementById('ConcretizaObj');
    inputCuboMedia.value = parseInt(media, 10);
}

function ContaObjetivos() {
    let contador = 0;
    for (var i = 1; i <= 12; i++) {
        if (document.getElementById('resultado' + i).value) {
            contador++;
        }
    }

    var inputCount = document.getElementById('ObjDefinidos');
}


console.log('calculaResultado é ' + typeof calculaResultado)
console.log('calculaMediaFinal é ' + typeof calculaMediaFinal)
console.log('ContaObjetivos é ' + typeof ContaObjetivos)
console.log('blablabla é ' + typeof blablabla)

  • but I call the function Countobjectives within the calculated functionResulted below where it calls calculatMediaFinal. And it doesn’t work

  • You’re right it already works, thank you very much

Browser other questions tagged

You are not signed in. Login or sign up in order to post.