Ver Mensaje Individual
  #2 (permalink)  
Antiguo 29/12/2004, 02:16
Avatar de KarlanKas
KarlanKas
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