Foros del Web » Programando para Internet » Javascript »

Sumar valores de input

Estas en el tema de Sumar valores de input en el foro de Javascript en Foros del Web. Buenas, Tengo un pequeño problema que no logro saber por que no funciona como debería... Tengo esto: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original Valor ...
  #1 (permalink)  
Antiguo 24/01/2016, 08:02
Avatar de Tropy  
Fecha de Ingreso: diciembre-2013
Mensajes: 62
Antigüedad: 10 años, 4 meses
Puntos: 1
Sumar valores de input

Buenas,

Tengo un pequeño problema que no logro saber por que no funciona como debería...

Tengo esto:

Código Javascript:
Ver original
  1. Valor numero 1:
  2. <input id="num1" type="text/javascript" />
  3. Valor numero 2:
  4. <input id="num2" type="text/javascript" />
  5.  
  6. <button onclick="clic()">Calcular</button>
  7.  
  8. <script>
  9.    
  10.     function clic(){
  11.         var num1 = document.getElementById("num1").value;
  12.         var num2 = document.getElementById("num2").value;
  13.    
  14.         var resultado = num1 + num2;
  15.        
  16.         console.log(resultado);
  17.     }
  18.    
  19. </script>

El problema es que cuando me va a mostrar el resultado en ves de hacer la suma uno los números... por ejemplo ingreso 3 y 3 y el resultado es 33 en ves de sumarlo y ser 6.

¿A que se podría deber dicho problema.
Cualquier información adicional lo agradecería.

Saludos.
  #2 (permalink)  
Antiguo 24/01/2016, 11:08
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Sumar valores de input

Sucede que cualquier valor contenido en un elemento de formulario, como los campos de texto, son interpretados como texto, incluso si son valores numéricos. Para poder operar con ellos, necesitas convertirlos a valores numéricos, para lo cual tienes distintas opciones:



Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 26/01/2016, 19:31
 
Fecha de Ingreso: diciembre-2014
Ubicación: montería
Mensajes: 33
Antigüedad: 9 años, 4 meses
Puntos: 0
Respuesta: Sumar valores de input

De hecho @Alexis88 tiene razon tu problema es que los datos capturados por tus input son interpretados como cadenas de caracteres y lo que haces al usar el operador [+] es concatenar los así:

Código Javascript:
Ver original
  1. "hola "+"mundo" ==> "hola mundo"

En fin Reescribiendo tu código seria algo así:

Código Javascript:
Ver original
  1. <input id="num1" type="number" />
  2.         Valor numero 2:
  3.         <input id="num2" type="number" />
  4.  
  5.         <button onclick="clic()">Calcular</button>
  6.  
  7.         <script>
  8.  
  9.             function clic() {
  10.                 var num1 = document.getElementById("num1").value;
  11.                 var num2 = document.getElementById("num2").value;
  12.  
  13.                 var resultado = parseFloat(num1) + parseInt(num2);
  14.  
  15.                 console.log(resultado);
  16.             }
  17.  
  18.         </script>

Date cuenta que convertí el valor contenido en las variables num1 y num2 a tipo numérico en el caso de parseInt(variable) hace un parseo de cadena de caracteres a entero, mientras que parseFloat parsea de cadena de caracteres a flotante «numero con decimales»

Por cierto tengo una apreciación mas, en el atributo type de tu input valuaste con un valor erroneo.

Etiquetas: funcion, input, 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 14:45.