Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Suma que se reinicia

Estas en el tema de Suma que se reinicia en el foro de Jquery en Foros del Web. Hola, tengo este código: Código: var TBase = 0; var totales = $('input[name^=base]'); totales.each(function(){ var valor = $(this).val().replace(',', '.'); if (!isNaN(valor)) { TBase += parseFloat(valor); ...
  #1 (permalink)  
Antiguo 25/02/2016, 14:51
 
Fecha de Ingreso: octubre-2015
Ubicación: españa
Mensajes: 53
Antigüedad: 9 años, 2 meses
Puntos: 1
Suma que se reinicia

Hola, tengo este código:

Código:
var TBase = 0; 
var totales = $('input[name^=base]'); 
totales.each(function(){ var valor = $(this).val().replace(',', '.'); if (!isNaN(valor)) { TBase += parseFloat(valor); } else { return true; } //calculamos la base
 $('input[name=Totalbase]').val(parseFloat(TBase).toFixed(2).replace(',', '.'));  
 $("#Pbase").text(" "+ parseFloat(TBase).toFixed(2).replace('.', ',') +" <?=$DEmpresa["17"]; ?>");
 });
lo que intento hacer es que al poner números en un input sume los valores. mas o menos funciona ( de hecho funcionaba hasta hace poco ) si pongo el valor en el input me dice en otro input el valor que hay escrito.

La idea es que coja el ultimo resultado que hay en $('input[name=Totalbase]') y sume el nuevo valor de $('input[name^=base]'); pero por alguna extraña razón siempre coge el valor de $('input[name^=base]'); y pasa de sumar nada

a ver si algún alma caritativa me guía en donde me estoy equivocando que ando perdidisimo
  #2 (permalink)  
Antiguo 26/02/2016, 06:15
 
Fecha de Ingreso: junio-2011
Mensajes: 289
Antigüedad: 13 años, 6 meses
Puntos: 15
Respuesta: Suma que se reinicia

Hace un debug para ser hasta donde llega.

Cambia el .text() por .val(), pero de todas formas creo que el problema es en tu variable <?=$DEmpresa["17"]; ?>
  #3 (permalink)  
Antiguo 28/02/2016, 05:20
 
Fecha de Ingreso: octubre-2015
Ubicación: españa
Mensajes: 53
Antigüedad: 9 años, 2 meses
Puntos: 1
Respuesta: Suma que se reinicia

Cita:
Iniciado por ZedGe1505 Ver Mensaje
Hace un debug para ser hasta donde llega.

Cambia el .text() por .val(), pero de todas formas creo que el problema es en tu variable <?=$DEmpresa["17"]; ?>
Como se hace un debug?

en principio esa linea lo que hace es escribir el resultado de la suma en un input oculto y en un valor de texto. y el $Dempresa es el símbolo del €.

Si la suma se hace, el problema es que no conserva el valor que había anteriormente
  #4 (permalink)  
Antiguo 16/05/2016, 13:07
 
Fecha de Ingreso: octubre-2015
Ubicación: españa
Mensajes: 53
Antigüedad: 9 años, 2 meses
Puntos: 1
Respuesta: Suma que se reinicia

sigo sin solucionarlo...
algún alma caritativa que me guíe en que me estoy equivocando?

me da la sensación que estoy perdiendo el contenido de TBase

Última edición por killpe; 16/05/2016 a las 13:25
  #5 (permalink)  
Antiguo 17/05/2016, 08:33
 
Fecha de Ingreso: diciembre-2015
Ubicación: rosario
Mensajes: 69
Antigüedad: 9 años
Puntos: 5
Respuesta: Suma que se reinicia

podrias poner el html de esta pagina para poder responderte mejor
  #6 (permalink)  
Antiguo 18/05/2016, 09:30
 
Fecha de Ingreso: octubre-2015
Ubicación: españa
Mensajes: 53
Antigüedad: 9 años, 2 meses
Puntos: 1
Respuesta: Suma que se reinicia

No aporta gran cosa el html pero yo lo pongo encantado :)

Código HTML:
<p><label class="oculto">Base:</label><i id="Pbase"> 0,00 <?=$DEmpresa["17"]; ?></i></p>
			<p><label class="oculto">Iva:</label><i id="Piva" class="oculto"> 0,00 <?=$DEmpresa["17"]; ?></i></p>
			<p><label class="oculto">Total:</label><i id="Ptotal" class="oculto"> 0,00 <?=$DEmpresa["17"]; ?></i></p>
		<p id="leyendaiva">
			<i class="mostrado" onClick="Mas()">I.V.A no incluido</i> 
			<i class="oculto" onClick="Menos()">I.V.A incluido</i>
		</p>
		
			<input type="hidden" name="Totalbase" readonly placeholder="Subtotal">
			<input type="hidden" name="Baseconiva" readonly placeholder="iva">
			<input type="hidden" name="Preciofinaliva" readonly placeholder="Base + iva">



<td class="uni"><input tabindex="11"  type="text" name="cantidad" id="cantidad" class="obligatorio numeros" onkeypress="return Comprobarnum(event)" placeholder="Uni"></td>
		<td class="concepto"><input tabindex="12" type="text" name="nombre" disabled id="Articulo" autocomplete="off" class="obligatorio" placeholder="Concepto"></td>
		<td class="precio"><input tabindex="13" type="text" name="precio" id="precio" class="obligatorio numeros" onkeypress="return Comprobarnum(event)" placeholder="precio"></td>
		<td class="coef"><input tabindex="14" type="text" name="coeficiente" id="coeficiente" class="obligatorio numeros" onkeypress="return Comprobarnum(event)" placeholder="Coef."></td>
		<td class="desc"><input tabindex="15" type="text" name="descu" id="descu" class="obligatorio numeros" onkeypress="return Comprobarnum(event)" placeholder="Desc."></td>
		<td class="subtotal"><input type="text" name="base" disabled id="base" placeholder="Base Imponible"></td>
			<input type="hidden" name="idarti" id="idarti">
			<input type="hidden" name="iva" id="iva" value="<?=$VALiva["0"]; ?>">
			<input type="hidden" name="detalles" id="detalles">
			<input type="hidden" name="totalimpu" id="totalimpu">
			<input type="hidden" name="subtotal" id="subtotal">
		<td class="opciones"><input id="agregarln" onclick="AddLinea(this.form);" type="button" class="botonadd" /></td> 
y este es la función js completa

Código:
function presupuestar() { //calculamos totales
        var dcto = parseFloat($("#descu").val().replace(',', '.')) / 100;
		var impuestos = parseFloat($("#iva").val().replace(',', '.')) / 100;
        var subaseimpo = parseFloat($("#cantidad").val().replace(',', '.')) * parseFloat($("#precio").val().replace(',', '.')) * parseFloat($("#coeficiente").val().replace(',', '.'));
        var dcto0 = parseFloat(subaseimpo) * parseFloat(dcto);
        var baseimpo = parseFloat(subaseimpo) - parseFloat(dcto0);
        var baseiva = parseFloat(baseimpo) * parseFloat(impuestos);
        var total = parseFloat(baseimpo) + parseFloat(baseiva);
        $("#baseim, #base").val(parseFloat(baseimpo).toFixed(2).replace('.', ',')); 
  		$('#totalimpu').val(parseFloat(baseiva).toFixed(2).replace('.', ','));
  		$('#subtotal').val(parseFloat(total).toFixed(2).replace('.', ','));
  		 
		
//pongo el codigo para calcular el total

		var TBase = 0;
        var totales = $('input[name^=base]'); 
		totales.each(function(){ var valor = $(this).val().replace(',', '.'); if (!isNaN(valor)) { TBase += parseFloat(valor); } else { return true; } //calculamos la base
		 $('input[name=Totalbase]').val(parseFloat(TBase).toFixed(2).replace(',', '.'));  
		 $("#Pbase").text(" "+ parseFloat(TBase).toFixed(2).replace('.', ',') +" <?=$DEmpresa["17"]; ?>");
		 });
		
		var basetotaiva = 0;
		var totalesiva = $('input[name^=totalimpu]');
		totalesiva.each(function(){ var valor2 = $(this).val().replace(',', '.'); if (!isNaN(valor2)) { basetotaiva += parseFloat(valor2); } else { return true; } //calculamos la base del iva
		 $('input[name=Baseconiva]').val(parseFloat(basetotaiva).toFixed(2).replace(',', '.'));  
		 $("#Piva").text(" "+ parseFloat(basetotaiva).toFixed(2).replace('.', ',') +" <?=$DEmpresa["17"]; ?>"); 
	  	});
	  	
	  	var Supertotal = parseFloat(basetotaiva) + parseFloat(TBase);
	  	$('input[name=Preciofinaliva]').val(parseFloat(Supertotal).toFixed(2).replace(',', '.'));
	  	$("#Ptotal").text(" "+ parseFloat(Supertotal).toFixed(2).replace('.', ',') +" <?=$DEmpresa["17"]; ?>"); 
}

<?=$DEmpresa["17"]; ?> es el simbolo del € que lo coge de una base de datos

Etiquetas: funcion, input, javascript, reinicia, suma, valor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:24.