Ver Mensaje Individual
  #2 (permalink)  
Antiguo 24/08/2005, 04:14
larariro
 
Fecha de Ingreso: agosto-2004
Mensajes: 51
Antigüedad: 20 años, 7 meses
Puntos: 0
Hola.

No sé si entiendo bien cómo quieres que te funcione la calculadora. ¿Quieres que la comprobación de que los campos sean numéricos se haga al pulsar alguno de los botones (o sea, después de haber permitido que se introduzcan datos erróneos)? En ese caso, puedes utilizar la función isNaN para ver si la variable es numérica o no (Is Not a Number). Con esto, la función calcula quedaría así:


Código PHP:
function calcula(operacion){
    var 
operando1 document.calc.operando1.value;
    var 
operando2 document.calc.operando2.value;
    if ( 
isNaN(operando1) || isNaN(operando2) ) {
        
alert ("Error: uno de los operandos no es numérico");
    } else {
        var 
result = eval(operando1 operacion operando2);
        
document.calc.resultado.value result;
    }

Si lo que quieres es que no se pueda escribir nada más que números en las cajas de texto de los operandos (creo que sería lo más efectivo), lo único que tendrías que hacer es añadir la validación que haces con validanum en el evento onKeyPress de las cajas de texto de los operandos:

Código PHP:
<input type="Text" name="operando1" onKeyPress="validanum()" size="20">
<
input type="Text" name="operando2" onKeyPress="validanum()" size="20"
En cualquier caso, poner la validación en la caja del resultado no te va a valer de mucho puesto que se supone que ahí nunca se va a escribir.

Espero que te sirva. Un saludo

P.D. Por cierto, la manera de capturar la tecla pulsada (que haces en validanum) no funciona con Firefox.