Foros del Web » Programando para Internet » Javascript »

suma de 4 campos

Estas en el tema de suma de 4 campos en el foro de Javascript en Foros del Web. necesito obtener la suma de 4 campos con jquery, nose que estoy haciendo mal pero mientras no ingrese los 4 campos completos no me hace ...
  #1 (permalink)  
Antiguo 14/06/2014, 12:37
Avatar de futusystem  
Fecha de Ingreso: febrero-2013
Ubicación: barcelona
Mensajes: 57
Antigüedad: 11 años, 2 meses
Puntos: 0
suma de 4 campos

necesito obtener la suma de 4 campos con jquery, nose que estoy haciendo mal pero mientras no ingrese los 4 campos completos no me hace la suma me dice NaN, quiero que al ingresar cualquiera de los 4 campos vaya poniendo el resultado debajo, el codigo que tengo es el siguiente:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<script>
function suma(){
var num1=0;
var num2=0;
var num3=0;
var num4=0;
num1=parseFloat($("#total1").val());
num2=parseFloat($("#total2").val());
num3=parseFloat($("#total3").val());
num4=parseFloat($("#total4").val());
resul=num1+num2+num3+num4;
$("#resulCalcular").val(resul);
}
</script>

alguien que me pueda ayudar en este caso, se lo agradeceria.
  #2 (permalink)  
Antiguo 14/06/2014, 13:42
Avatar de utan  
Fecha de Ingreso: agosto-2012
Mensajes: 126
Antigüedad: 11 años, 8 meses
Puntos: 17
Respuesta: suma de 4 campos

Hola,

Si no quieres hacer condicionales en tu Javascript code, entonces en el value de tus inputs coloca una value="0" así si el usuario no pone un numero en alguno de tus inputs siempre hará la suma sin problemas, ademas hay algunos errores..

tu variable resul no esta definida en el contexto de la funcion haciéndola peligrosa, ya que se vuelve global, así que definela.
Código Javascript:
Ver original
  1. var resul = 0;

Ademas a mi no me funciono
Código Javascript:
Ver original
  1. $("#resulCalcular").val(resul);

así que le coloque
Código Javascript:
Ver original
  1. $("#resulCalcular").append(resul);

En ejemplo esto es lo que me sirve.


Código Javascript:
Ver original
  1. <!DOCTYPE html>
  2. <html lang="en_US" xml:lang="en_US" xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
  4.     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
  5.         <head>
  6.             <script type="text/javaScript">
  7.                 function suma(){
  8.                     var num1=0
  9.                     ,num2=0
  10.                     ,num3=0
  11.                     ,num4=0
  12.                     ,resul;
  13.                    
  14.                     num1=parseFloat($("#total1").val());
  15.                     num2=parseFloat($("#total2").val());
  16.                     num3=parseFloat($("#total3").val());
  17.                     num4=parseFloat($("#total4").val());
  18.                     resul=num1+num2+num3+num4;
  19.                     console.log(resul);
  20.                     $("#resulCalcular").append(resul);
  21.                 }
  22.             </script>
  23.         </head>
  24.         <body>
  25.             <input  type="text" id="total1" value="0"/>
  26.             <input  type="text" id="total2" value="7"/>
  27.             <input  type="text" id="total3" value="0"/>
  28.             <input  type="text" id="total4" value="9"/>
  29.             <div id="resulCalcular"></div>
  30.             <button onclick="suma();">click me</button>
  31.         </body>
  32.     </html>
__________________
Mis conocimientos son limitado, pero si te puedo ayudar lo are gustoso mi chat particular, visitalo gracias http://rendezvouschat.com
  #3 (permalink)  
Antiguo 14/06/2014, 14:56
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: suma de 4 campos

Lo más seguro es que evalúes el contenido de cada caja de texto, pues el usuario puede ingresar un texto en lugar de un valor numérico y de suceder eso, no obtendrás un resultado válido.

Código Javascript:
Ver original
  1. var a = document.getElementById("a"), //Primera caja
  2.     b = document.getElementById("b"), //Segunda caja
  3.     c = document.getElementById("c"), //Tercera caja
  4.     x, y, z, //Variables que tomarán el valor final de cada caja
  5.     sumar = document.getElementById("sumar"), //Botón de suma
  6.     resultado = document.getElementById("resultado"); //Muestra el resultado
  7.  
  8. sumar.addEventListener("click", function(){
  9.     x = !isNaN(a.value) ? Number(a.value) : 0;
  10.     y = !isNaN(b.value) ? Number(b.value) : 0;
  11.     z = !isNaN(c.value) ? Number(c.value) : 0;
  12.     resultado.innerHTML = x + y + z;
  13. }, false);

Con la función isNaN, evalúo el contenido de cada caja, verificando que no sea un 'Not a number', es decir, que sea un número. Entonces, si se ingresa un valor no numérico, se asigna un cero, caso contrario, obtener el valor numérico del dato ingresado, pues todo valor que se ingresa en una caja de texto es tomado originalmente como una cadena, por lo que si ingreso "35" u otro valor y quiero que se evalúe como un número, lo convierto en dicho tipo de dato con el objeto Number. Incluso si no se ingresa contenido en la caja, se asignaría un cero pues dicho objeto interpreta como tal a una cadena vacía.



Saludos
__________________
«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

Última edición por Alexis88; 14/06/2014 a las 15:37 Razón: Palabra repetida
  #4 (permalink)  
Antiguo 14/06/2014, 15:29
Avatar de utan  
Fecha de Ingreso: agosto-2012
Mensajes: 126
Antigüedad: 11 años, 8 meses
Puntos: 17
Respuesta: suma de 4 campos

Oupss,

Me tiene un poco atontado el haberme sacado la muela del Juicio..

La respuesta de @Alexis88 es la mas apropiada..
__________________
Mis conocimientos son limitado, pero si te puedo ayudar lo are gustoso mi chat particular, visitalo gracias http://rendezvouschat.com

Etiquetas: campos, js, suma
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 01:28.