Doubt handling js values

1

I have the following inputs in the html:

COD_01     VALOR_01
COD_02     VALOR_02
e asim por diante até....
COD_99     VALOR_99

The user will feed each COD and VALUE.

I need to create a js for:

1- Somar todos os Valores, por COD.
2- Preciso exibir um alerta caso a soma de algum código ultrapasse de 1000

Example:

COD_01       VALOR_01
201           200,00
COD_02       VALOR_02
202           100,00
COD_03       VALOR_03
201           900,00

As the value of code 201 passed 1000, then display message:

Atenção! O valor do código 201 passou de R$ 1000,00

You can use jquery without any problems.

    
asked by anonymous 01.02.2018 / 19:18

1 answer

1

The idea is to create an object and go adding the codes that do not exist and adding the values. When an existing code in the object exceeds 1000, it displays the alert:

var codigos = {};

var cods = $("input[name*='cod_']");
var vals = $("input[name*='valor_']");

cods.on("blur", function(){
   var cod = $(this).val();
   if(codigos[cod] == null && cod){
      codigos[cod] = 0;
   }
});

vals.on("blur", function(){
   var val = $(this).val();
   if(val){
      var cod_val = $(this).prev("input[name*='cod_']").val();
      var valor = parseFloat(val.replace(".", "").replace(',','.'));
   
      if(codigos[cod_val] + valor > 1000){
         alert("Atenção! O valor do código "+cod_val+" passou de R$ 1000,00");
      }else{
         codigos[cod_val] += valor;
      }
   }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><inputplaceholder="código" type="text" name="cod_01" />
<input placeholder="valor" type="text" name="valor_01" />
<br />
<input placeholder="código" type="text" name="cod_02" />
<input placeholder="valor" type="text" name="valor_02" />
<br />
<input placeholder="código" type="text" name="cod_03" />
<input placeholder="valor" type="text" name="valor_03" />
<br />
<input placeholder="código" type="text" name="cod_04" />
<input placeholder="valor" type="text" name="valor_04" />
    
01.02.2018 / 20:11