Foros del Web » Programando para Internet » Javascript »

Función no se ejecuta

Estas en el tema de Función no se ejecuta en el foro de Javascript en Foros del Web. Hola a todos. Tengo esté código Javascript que me debería permitir hacer un par de sencillos cálculos según pulse un botón u otro (vaya, un ...
  #1 (permalink)  
Antiguo 11/09/2016, 11:46
Avatar de BramSt  
Fecha de Ingreso: abril-2015
Mensajes: 117
Antigüedad: 7 años, 9 meses
Puntos: 5
Función no se ejecuta

Hola a todos. Tengo esté código Javascript que me debería permitir hacer un par de sencillos cálculos según pulse un botón u otro (vaya, un intento de calculadora cutre para ir aprendiendo XD).

Por algún motivo, la función calcular no se ejecuta, parece ser, y no acierto a saber cuál es. A ver si podéis ayudarme.

Se supone que las dos funciones están bien llamadas en el evento onclick, ¿no? Y que el link al archivo que contiene el código JS está bien colocado antes de cerrar el body...

Disculpad si hay algún trozo de código incoherente. Lo tengo haciendo mil pruebas, he intentado borrar todo lo irrelevante.

Un saludo

Código PHP:
Ver original
  1. <html>
  2.  
  3.     <head>
  4.         <title></title>
  5.         <meta charset="utf-8">
  6.         <!--<LINK REL=StyleSheet HREF="estilos.css" TYPE="text/css">-->
  7.        
  8.        
  9.         </head>
  10.    
  11.     <body>
  12.        
  13.         <div id="cajaform">
  14.        
  15.             <form action="" name="formularioCalc" method="post">
  16.  
  17.                 <input type="text" name="numero" id="numer"/>
  18.                 <input type="button" name="operadorSuma" id="oSuma" value="+" onclick="validar();calcular(suma)"/>
  19.                 <input type="button" name="operadorResta" value="-" onclick="validar();calcular(resta)"/>
  20.                
  21.                 <input type="text" name="result" id="resultado">
  22.                
  23.                
  24.                 <input type="submit" value="Mandar"/>
  25.                
  26.                
  27.                
  28.             </form>
  29.        
  30.        
  31.        
  32.         </div>
  33.        
  34.        
  35.        
  36.         <script type="text/javascript" src="codigo.js"></script>
  37.     </body>
  38.  
  39. </html>

El JS:


Código Javascript:
Ver original
  1. function calcular(parametro)
  2.     {
  3.        
  4.        
  5.        
  6.         var numero=0;
  7.        
  8.         numero=document.getElementById("numer").value;
  9.        
  10.         if(parametro=='suma'){
  11.            
  12.             resultado=int(resultado+numero);
  13.            
  14.         }else if (parametro=='resta'){
  15.            
  16.            
  17.             resultado=resultado-numero;
  18.            
  19.            
  20.         }
  21.        
  22.         document.getElementById("resultado").value=resultado;
  23.        
  24.        
  25.        
  26.     }

Última edición por BramSt; 11/09/2016 a las 12:08
  #2 (permalink)  
Antiguo 11/09/2016, 12:31
 
Fecha de Ingreso: julio-2012
Mensajes: 81
Antigüedad: 10 años, 6 meses
Puntos: 3
Respuesta: Función no se ejecuta

Prueba modificando esta línea:
resultado=int(resultado+numero);

por esta otra:
resultado=parseInt(resultado+numero);
  #3 (permalink)  
Antiguo 11/09/2016, 12:34
Avatar de BramSt  
Fecha de Ingreso: abril-2015
Mensajes: 117
Antigüedad: 7 años, 9 meses
Puntos: 5
Respuesta: Función no se ejecuta

Cita:
Iniciado por alonsomaxx Ver Mensaje
Prueba modificando esta línea:
resultado=int(resultado+numero);

por esta otra:
resultado=parseInt(resultado+numero);
Muchas gracias, pero sigue igual... incluso aunque quite todo el código de la función y ponga un simple alert, no se ejecuta...
  #4 (permalink)  
Antiguo 11/09/2016, 13:16
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.132
Antigüedad: 11 años, 10 meses
Puntos: 168
Respuesta: Función no se ejecuta

Mira, para comenzar estas mandando en parametro suma... cuando deberia ser 'suma' ya que comparas como texto en la funcion, si bien es una calculadora muy basica... te la he modificado, prueba y nos dices...

Código Javascript:
Ver original
  1. function calcular(parametro){
  2.             numero = document.formularioCalc.numero.value;
  3.             result = document.formularioCalc.resultado.value;
  4.             if(parametro == 'suma'){
  5.             if(result == 0){
  6.             var resul = parseInt(numero);
  7.                
  8.             } else{
  9.             var resul = parseInt(numero) + parseInt(result);
  10.             }
  11.             }
  12.             if (parametro=='resta'){
  13.                var resul= (result - numero);
  14.             }
  15.            
  16.             return document.formularioCalc.resultado.value = resul;            
  17.         }

Código HTML:
Ver original
  1. <div id="cajaform">
  2.        
  3.             <form action="" name="formularioCalc" method="post">
  4.  
  5.                 <input type="text" name="numero" id="numer"/>
  6.                 <input type="button" name="operadorSuma" id="oSuma" value="+" onclick="calcular('suma');"/>
  7.                 <input type="button" name="operadorResta" value="-" onclick="calcular('resta');"/>
  8.                 <input type="text" name="result" id="resultado" readonly value="0">
  9.                
  10.                 <input type="submit" value="Mandar"/>
  11.             </form>
  12.         </div>

Online: https://jsfiddle.net/umgmn8x6/

Saludos!
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #5 (permalink)  
Antiguo 14/09/2016, 10:34
Avatar de BramSt  
Fecha de Ingreso: abril-2015
Mensajes: 117
Antigüedad: 7 años, 9 meses
Puntos: 5
Respuesta: Función no se ejecuta

Muchas gracias compañero.

Al final conseguí hacer la calculadora, pero de una manera bastante menos lógica y eficiente que la tuya! No había caído en hacer una condición cuyo resultado sea 0.

Una cosa, no se debería comprobar también en la resta qué ocurre si el resultado es 0?

La lógica siempre es algo que me ha costado mucho, y a costa de meter horas voy mejorando... pero aún me cuesta

Etiquetas: funcion, html, innerhtml, input, js, text
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 20:46.