Foros del Web » Programando para Internet » Javascript »

Concadena en vez de sumar?

Estas en el tema de Concadena en vez de sumar? en el foro de Javascript en Foros del Web. Tengo el siguiente codigo y estoy seguro el problema es en la parte javascript la cual no domino, me concatena los numeros que obtengo en ...
  #1 (permalink)  
Antiguo 20/07/2008, 21:31
Avatar de Highlander  
Fecha de Ingreso: junio-2006
Ubicación: Concepción, Chile
Mensajes: 475
Antigüedad: 17 años, 10 meses
Puntos: 4
Concadena en vez de sumar?

Tengo el siguiente codigo y estoy seguro el problema es en la parte javascript la cual no domino, me concatena los numeros que obtengo en un formulario en vez de sumarlos:

Código:
<script language="javascript"> 
function calcula(operacion){ 
        var precio00 = document.mostrar.precio00.value;
	var precio01 = document.mostrar.precio01.value;
        var precio02 = document.mostrar.precio02.value;
        var precio03 = document.mostrar.precio03.value;
	var precio04 = document.mostrar.precio04.value;
	var precio05 = document.mostrar.precio05.value;
	var precio06 = document.mostrar.precio06.value;
	var precio07 = document.mostrar.precio07.value;
        var result = eval(precio00 + precio01 + precio02 + precio03 + precio04 + precio05 + precio06 + precio07);
    document.mostrar.resultado.value = result ;
} 
</script>
Cualquier ayuda es bienvenida.
  #2 (permalink)  
Antiguo 20/07/2008, 21:46
kxo
 
Fecha de Ingreso: julio-2008
Mensajes: 40
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: Concadena en vez de sumar?

Hola, encontré una discución que quizás resuelva tu problema:

http://www.forosdelweb.com/f13/convertir-entero-cadena-335395/

Saludos!
  #3 (permalink)  
Antiguo 24/07/2008, 21:15
Avatar de Highlander  
Fecha de Ingreso: junio-2006
Ubicación: Concepción, Chile
Mensajes: 475
Antigüedad: 17 años, 10 meses
Puntos: 4
Respuesta: Concadena en vez de sumar?

Solucionado, ahora lo unico que no me convence es que para que sume todo hay que hacer click en algun campo sino no actualiza todos los valores, me pregunto si habra alguna forma de que actualize de manera automatica siempre.

Código:
<script language="javascript"> 
function calcula(operacion){ 
    var precio00 = parseInt(document.mostrar.precio00.value);
	var precio01 = parseInt(document.mostrar.precio01.value);
    var precio02 = parseInt(document.mostrar.precio02.value);
    var precio03 = parseInt(document.mostrar.precio03.value);
	var precio04 = parseInt(document.mostrar.precio04.value);
	var precio05 = parseInt(document.mostrar.precio05.value);
	var precio06 = parseInt(document.mostrar.precio06.value);
	var precio07 = parseInt(document.mostrar.precio07.value);
    var result = eval(precio00 + precio01 + precio02 + precio03 + precio04 + precio05 + precio06 + precio07);
    document.mostrar.resultado.value = result ;
} 
</script>

Última edición por Highlander; 25/07/2008 a las 09:57
  #4 (permalink)  
Antiguo 25/07/2008, 13:25
Avatar de xbx
xbx
 
Fecha de Ingreso: mayo-2008
Ubicación: /home/xbx
Mensajes: 301
Antigüedad: 15 años, 11 meses
Puntos: 11
Respuesta: Concadena en vez de sumar?

Hola Hightlander

Aqui esta lo que buscas:
Código HTML:
<script language="javascript">
function calcula(operacion){ 
    var precio00 = parseInt(document.mostrar.precio00.value);
    var precio01 = parseInt(document.mostrar.precio01.value);
    var precio02 = parseInt(document.mostrar.precio02.value);
    var precio03 = parseInt(document.mostrar.precio03.value);
    var precio04 = parseInt(document.mostrar.precio04.value);
    var precio05 = parseInt(document.mostrar.precio05.value);
    var precio06 = parseInt(document.mostrar.precio06.value);
    var precio07 = parseInt(document.mostrar.precio07.value);
    var result = eval(precio00 + precio01 + precio02 + precio03 + precio04 + precio05 + precio06 + precio07);
    document.mostrar.resultado.value = result ;
} 
</script>

<form name="mostrar">
    <input type="text" name="precio00" value="0" onchange="calcula()" />
    <input type="text" name="precio01" value="0" onchange="calcula()" />
    <input type="text" name="precio02" value="0" onchange="calcula()" />
    <input type="text" name="precio03" value="0" onchange="calcula()" />
    <input type="text" name="precio04" value="0" onchange="calcula()" />
    <input type="text" name="precio05" value="0" onchange="calcula()" />
    <input type="text" name="precio06" value="0" onchange="calcula()" />
    <input type="text" name="precio07" value="0" onchange="calcula()" />

    <input type="text" name="resultado" value="" />
</form> 
Debes colocar onchange="calcula()" en cada campo de tu formulario

Saludos!
  #5 (permalink)  
Antiguo 28/07/2008, 00:30
Avatar de Highlander  
Fecha de Ingreso: junio-2006
Ubicación: Concepción, Chile
Mensajes: 475
Antigüedad: 17 años, 10 meses
Puntos: 4
Respuesta: Concadena en vez de sumar?

Lo pruebo y te aviso, gracias.
  #6 (permalink)  
Antiguo 28/07/2008, 01:29
 
Fecha de Ingreso: septiembre-2007
Mensajes: 268
Antigüedad: 16 años, 7 meses
Puntos: 8
Respuesta: Concadena en vez de sumar?

Cita:
Iniciado por xbx Ver Mensaje
Hola Hightlander

Aqui esta lo que buscas:
Código HTML:
<script language="javascript">
function calcula(operacion){ 
    var precio00 = parseInt(document.mostrar.precio00.value);
    var precio01 = parseInt(document.mostrar.precio01.value);
    var precio02 = parseInt(document.mostrar.precio02.value);
    var precio03 = parseInt(document.mostrar.precio03.value);
    var precio04 = parseInt(document.mostrar.precio04.value);
    var precio05 = parseInt(document.mostrar.precio05.value);
    var precio06 = parseInt(document.mostrar.precio06.value);
    var precio07 = parseInt(document.mostrar.precio07.value);
    var result = eval(precio00 + precio01 + precio02 + precio03 + precio04 + precio05 + precio06 + precio07);
    document.mostrar.resultado.value = result ;
} 
</script>

<form name="mostrar">
    <input type="text" name="precio00" value="0" onchange="calcula()" />
    <input type="text" name="precio01" value="0" onchange="calcula()" />
    <input type="text" name="precio02" value="0" onchange="calcula()" />
    <input type="text" name="precio03" value="0" onchange="calcula()" />
    <input type="text" name="precio04" value="0" onchange="calcula()" />
    <input type="text" name="precio05" value="0" onchange="calcula()" />
    <input type="text" name="precio06" value="0" onchange="calcula()" />
    <input type="text" name="precio07" value="0" onchange="calcula()" />

    <input type="text" name="resultado" value="" />
</form> 
Debes colocar onchange="calcula()" en cada campo de tu formulario

Saludos!
Yo usaría el parseInt(document.mostrar.precio00.value,10);
porque a veces si el numero empieza por cero el parseInt intenta pasarlo a base ocho y puede dar problemas. Es decir, que si document.mostrar.precio00.value = "010", la variable precio00 = 8.
  #7 (permalink)  
Antiguo 28/07/2008, 12:22
Avatar de Highlander  
Fecha de Ingreso: junio-2006
Ubicación: Concepción, Chile
Mensajes: 475
Antigüedad: 17 años, 10 meses
Puntos: 4
Respuesta: Concadena en vez de sumar?

Gracias ahora funciona mucho mejor, creo que da por solucionado.
  #8 (permalink)  
Antiguo 28/07/2008, 18:33
Avatar de xbx
xbx
 
Fecha de Ingreso: mayo-2008
Ubicación: /home/xbx
Mensajes: 301
Antigüedad: 15 años, 11 meses
Puntos: 11
Respuesta: Concadena en vez de sumar?

Cita:
Iniciado por Erickvk Ver Mensaje
Yo usaría el parseInt(document.mostrar.precio00.value,10);
porque a veces si el numero empieza por cero el parseInt intenta pasarlo a base ocho y puede dar problemas. Es decir, que si document.mostrar.precio00.value = "010", la variable precio00 = 8.
Excelente, buen punto.
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 16:01.