Cita: var n1 = parseInt(document.getElementById("num1").value);
var n2 = parseInt(document.getElementById("num2").value);
Bueno en principio no se pueden asignar valores del html mientras no se ha cargado la pagina, ademas estas variables supongo que se modificaran asi que tampoco serviria cargarlas en el onload por que siempre tendrian el mismo valor que al cargar la pagina, en tu caso nada, por eso te sale NaN, lo raro es que no te de error.
Se me ocurre una idea, incluyendo estas lineas:
Código:
n1=document.form1.num1.value
n2=document.form1.num2.value
y ademas conviertes los inputs suma y resta en radio buton:
Código:
<input name="oper" type="radio" value="suma" checked>
<input name="oper" type="radio" value="resta">
y al onchange del form lo mandas a otra funcion que hace las operaciones:
Código:
<form name="form1" onchange="opera()">
podria aparacer el resultado en num3 automaticamente añadiendo esta otra linea:
Código:
document.form1.num3.value=
(document.form1.oper[0].checked==true)?(n1+n2):(n1-n2)
la nueva funcion quedaria:
Código:
function opera()
{
n1=document.form1.num1.value
n2=document.form1.num2.value
document.form1.num3.value=
(document.form1.oper[0].checked==true)?(n1+n2):(n1-n2)
}
pudiendo eliminar las funciones suma y resta.