![Antiguo](http://static.forosdelweb.com/fdwtheme/images/statusicon/post_old.gif)
29/12/2004, 02:16
|
![Avatar de KarlanKas](http://static.forosdelweb.com/customavatars/avatar11549_2.gif) | Moderador extraterrestre | | Fecha de Ingreso: diciembre-2001 Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 23 años, 1 mes Puntos: 61 | |
Vamos a ver. Lo que debes poner es delante del valor parseInt para que convierta la cadena en número. Si éste tiene decimales conviertelo con parseFloat.
Sería más o menos así:
valor1=parseInt(document.forms['formulario'].elements['sumando1'].value);
o más moderno:
valor1=parseInt(document.getElementById("sumando1" ).value);
o
valor1=parseFloat(document.getElementById("sumando 1").value);
Con ese pequeño cambio en tu script seguro que lo consigues. En cualquier caso te he puesto un pequeño ejemplo: Código HTML: <html>
<head>
<style>
input{text-align:right;border:none;border:solid 1px black;font:normal 10px/10px verdana;}
</style>
<script>
var formulario;
function inicio(){
formulario=document.forms[0];
formulario.onkeyup=sumar;
}
function sumar(){
suma1=(isNaN(parseFloat(formulario['sumando1'].value)) || !formulario['sumando1'].value)?0:parseFloat(formulario['sumando1'].value);
suma2=(isNaN(parseFloat(formulario['sumando2'].value)) || !formulario['sumando2'].value)?0:parseFloat(formulario['sumando2'].value);
formulario['resultado'].value=suma1+suma2;
}
</script>
</head>
<body onload="inicio()">
<form>
<input align="right" align="right" type="input" size="20" name="sumando1"><br>
<input align="right" type="input" size="20" name="sumando2"><br>
---------------------<br>
<input type="input" readonly size="20" name="resultado"><br>
</form>
</body>
</html> Igual parece un poco complicado, pero es sencillo. la fórmula
valor=(igualdad)?valor1:valor2;
no hace más que comprobar si igualdad es cierto. Si lo es le da a valor el valor1 y si no el valor2. Por ejemplo:
numero=(4>5)?2:3;
En este caso numero valdrá 3 porque cuatro no es mayor que cinco.
prueba=3
numero=(prueba>2)?"prueba es mayor que 2":"prueba es menor o igual que 2";
Aquí, dependiendo del valor de prueba dará uno u otro. En este caso numero valdría "prueba es mayor que 2".
Lo que hace isNaN(valor) es determinar si valor es o no un número. Si no es número da un valor de true y si no da false. Un ejemplo:
if(isNaN(valor)){alert(valor+" no es un número!");}
else{alert(valor+"+5="+(valor+5))}
Espero haberte ayudado!
Si tienes alguna duda me preguntas.
__________________ Cómo escribir
No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
Última edición por KarlanKas; 29/12/2004 a las 02:31 |