Foros del Web » Programando para Internet » Javascript »

Problema al sumar campos con value de Select

Estas en el tema de Problema al sumar campos con value de Select en el foro de Javascript en Foros del Web. Hola a todos, antes que nada les quiero agradecer la enorme utilidad que brinda la comunidad, estoy empezando a programar y realmente muchas respuestas de ...
  #1 (permalink)  
Antiguo 23/04/2010, 07:57
 
Fecha de Ingreso: abril-2010
Mensajes: 1
Antigüedad: 14 años
Puntos: 0
Problema al sumar campos con value de Select

Hola a todos, antes que nada les quiero agradecer la enorme utilidad que brinda la comunidad, estoy empezando a programar y realmente muchas respuestas de acá me sirven para aprender de mis errores.

Lamentablemente leyendo de todos lados e incluso en este foro no encuentro la solución a un problema de un Javascript que tengo y que sirve para hacer algo asi como un pedido y que te vaya mostrando Subtotal y Total.

Paso a comentarles:

Código HTML:
<script type="text/javascript">
function Sumar(){
      interval = setInterval("calcula()",1);
}
function calcula(){
	var vcantidad=document.getElementsByName('cantidad[]');
	var vprecio_u=document.getElementsByName('precio[]');
	var vrubro=document.getElementsByName('rubro[]');	
	var subtotal=0;
	var totalidad=0;
	i=0;
	for (var obj in document.getElementsByName('total_p[]')){
	 if (i<document.getElementsByName('cantidad[]').length){
	document.getElementsByName('total_p[]')[i].value=parseFloat(vcantidad[i].value)*parseFloat(vprecio_u[i].value)*1.07+parseInt(vrubro[i].value)*parseFloat(vcantidad[i].value);
	  subtotal+=parseFloat(vcantidad[i].value)*parseFloat(vprecio_u[i].value);
  	  totalidad=parseFloat(vcantidad[i].value)*parseFloat(vprecio_u[i].value)*1.07+parseFloat(vcantidad[i].value)*parseFloat(vrubro[i].value);
	  }
	  i++;
	  }
	  
	  document.autoSumForm.Total.value =  (parseFloat(totalidad) * 1);
	  document.autoSumForm.subtot.value = (subtotal * 1.07);
	  document.autoSumForm.Adelanto.value = (parseFloat(document.autoSumForm.Total.value) * 0.2);
	  
}

</script> 
Lo que hace esto es que cuando colocas en el campo cantidad y precio un numero, los multiplica, da un subtotal con un 7% de interés y además toma el valor de un Select llamado Rubro que le adiciona a ese subtotal X precio + la cantidad de productos que haya elegido.

Un ejemplo:
2 en cantidad
100 en precio
Subtotal va a dar: 214 (es 100 x 2 + 7%)

Luego tenes un Select con varias opciones que según la que le elijas, le suma cantidad de productos elegidos + el value.
Por ejemplo:
Select value: 10
Total va a dar: 214 + (10 value * 2 cantidad) = 234 y lo tira en otro campo llamado Total en el mismo IF.

El tema es cuando quiero tener un campo que vaya mostrando el Total GENERAL y no de cada producto, ahi saliendo del IF el valor de rubro[i].value me dice que es NaN y haga lo que haga el resultado me sigue tirando que es NaN.

Espero puedan ayudarme!

Un abrazo,
Matias.
  #2 (permalink)  
Antiguo 24/04/2010, 19:09
Avatar de sweetlydark  
Fecha de Ingreso: septiembre-2008
Mensajes: 391
Antigüedad: 15 años, 7 meses
Puntos: 10
Respuesta: Problema al sumar campos con value de Select

Es un problema muy común con js. NaN es Not a Number (no es un numero) y por lo general pasa cuando intentas hacer acciones aritméticas con, pues un variable que no es un numero. Ya sea porque lo usaste como string o lo recibes strings o contiene letras. Puede pasar si intentas operaciones con tipos incompatibles, etc.

No puedo decir tu exacto problema ya no incluyes el formulario pero el código que colocaste es muy bien. Me parece un error en lo datos que entras a ella con tu formulario.
__________________
Por fin vuelvo a tener internet!
http://www.anidandoetiquetas.com/

Etiquetas: campos, select
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 11:53.