Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Elson Lima

[Resolvido] Recuperar Valores De Campo Dinâmico No Jquery

Recommended Posts

Ola Pessoal!!

 

Estou cirando um código onde tenho que pegar valores de campos gerados automaticamente, de acordo com os registros do banco de dados ex:

no meu form eu tenho 3 campos dinamicos:

 

<input name="unidade[]" type="text" class="btn" size="4" maxlength="4" id="unidade"/>
   <input type="text" name="preco[]" size="8" maxlength="8" class="btn" id="preco"/>
   <input type="text" name="total[]" size="8" maxlength="8" class="btn" id="total" />

 

Este campo Total, recebe os valores assim que forem preenchidos os campos "unidade[]" e "preco[]".

 

O problema é o seguinte:

no primeiro resultado do loop, funciona. Mas no restante não funciona.

 

Meu script do Jquery ta assim:

 

  $(document).ready(function(){
                   $(document).ready(function(){
                        $('.btn').change(function(){
                               var unidade = parseFloat($('[id^=unidade]').val())|| 0.0;
                               var preco = parseFloat($('[id^=preco]').val())|| 0.0;
                               var total= preco / unidade / 2;
                               total += total;

                             $('#total').val(total);
                           });
                       });
                 });

 

Se alguem puder ajudar, Agradesco, ja pesquizei muito e n sei mais por onde pesquizar.

Desde ja Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você não pode duplicar IDs. Dispare pelas classes, e então navegue pelo DOM com o this, .parent(), .find() e .next().

Compartilhar este post


Link para o post
Compartilhar em outros sites

você não pode duplicar IDs. Dispare pelas classes, e então navegue pelo DOM com o this, .parent(), .find() e .next().

 

 

Desculpe a ignorância William, poderia postar um exemplo? Não tenho muita intimidade com jquery. Obrigado por responder.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Gente!!

 

Resolvi o problema aqui. Mas mudei totalmente o meu codigo.

Agora deixei ele assim:

 

function number_format( number, decimals, dec_point, thousands_sep ) {
var n = number, c = isNaN(decimals = Math.abs(decimals)) ? 2 : decimals;
var d = dec_point == undefined ? "," : dec_point;
var t = thousands_sep == undefined ? "." : thousands_sep, s = n < 0 ? "-" : "";
var i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", j = (j = i.length) > 3 ? j % 3 : 0;
return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
}


function calcula_preco(id_input) {
   // pega o numero identificador dos campos de calculo
   id = id_input.split('-')[1];

   // transforma o valor base em uma string apropriada para calculo
   unidade = $('#unidade-' + id).val().replace(".","").replace(",",".");

   // transforma o desconto em uma string apropriada para calculo
   preco = $('#preco-' + id).val().replace(".","").replace(",",".");

   // calcula a diferenca entre o valor base menos o desconto 
   total = parseFloat(preco) / parseFloat(unidade);

   // coloca o valor total no input em formato da moeda real
 $('#total-' + id).val(number_format(total, 2, ',', '.'));

}

 

So tem agora uma coisa pra resolver.

 

Quero que quando o reultado da divisao for um numero inteiro tipo:1,99 ele mostre 2 casas decimais ,

e quando o resultado da divisao for ex: 1,9865 ele mostre as 4 casas.

 

da forma como está ele esta arredondando tudo para utilizar 2 casas decimais.

 

Se puder dar uma forca agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.