Problemas con función parseInt en javascript
Buenas, tengo el siguiente problema:
Tengo tres cajas de texto llamadas input101, input102 e input103, ademas de un botón que llama a la función compararResultado, a la que se le pasan como parámetros los finales de los nombres de las cajas de texto, vamos 101, 102 y 103.
Lo que quiero es hacer una evaluación de números que introduciremos en las cajas de texto 101 y 102 y el número mayor me lo debería poner en la caja de texto 103 (en realidad no quiero el número, sino el nombre de la caja... Pero bueno es para mejor comprensión).
El problemas es que no consigo hacer que haga la comparación, ya que parece que no trabaja correctamente la función parseInt.
Te adjunto el código por si quieres echarle un vistazo.
He metido varias alertas para que se vea que el pase de los parámetros es correcto y que la función de eval también funciona correctamente:
<script language="JavaScript">
function CompararResultado(param1, param2, param3){
var objForm="document.formulario.input";
alert(param1+", "+param2+" y "+param3);
alert(eval(objForm+param1+'.value'));
alert(eval(objForm+param2+'.value'));
alert(eval(objForm+param3+'.value'));
alert(parseInt(eval(objFrom+param1+'.value')));
if(parseInt(eval(objForm+param1+'.value')) > parseInt(eval(objForm+param2+'.value'))){
alert(eval(objForm+param1+'.name')+" mayor que "+eval(objForm+param2+'.name'));
eval(objForm+param+'.value') = eval(objForm+param1+'.name');
} else{
if(parseInt(eval(objFrom+param1+'.value')) < parseInt(eval(objForm+param2+'.value'))){
alert(eval(objForm+param2+'.name')+" mayor que "+eval(objForm+param1+'.name'));
eval(objForm+param+'.value') = eval(objForm+param2+'.name');
} else{
alert(eval(objForm+param1+'.name')+" igual que "+eval(objForm+param2+'.name'));
eval(objForm+param3+'.value') = "Tienen que desempatar";
}
}
}
</script>
En la línea 10 he puesto una alerta para verificar que el problema está en el parseInt.
Gracias de antemano.
Tengo tres cajas de texto llamadas input101, input102 e input103, ademas de un botón que llama a la función compararResultado, a la que se le pasan como parámetros los finales de los nombres de las cajas de texto, vamos 101, 102 y 103.
Lo que quiero es hacer una evaluación de números que introduciremos en las cajas de texto 101 y 102 y el número mayor me lo debería poner en la caja de texto 103 (en realidad no quiero el número, sino el nombre de la caja... Pero bueno es para mejor comprensión).
El problemas es que no consigo hacer que haga la comparación, ya que parece que no trabaja correctamente la función parseInt.
Te adjunto el código por si quieres echarle un vistazo.
He metido varias alertas para que se vea que el pase de los parámetros es correcto y que la función de eval también funciona correctamente:
<script language="JavaScript">
function CompararResultado(param1, param2, param3){
var objForm="document.formulario.input";
alert(param1+", "+param2+" y "+param3);
alert(eval(objForm+param1+'.value'));
alert(eval(objForm+param2+'.value'));
alert(eval(objForm+param3+'.value'));
alert(parseInt(eval(objFrom+param1+'.value')));
if(parseInt(eval(objForm+param1+'.value')) > parseInt(eval(objForm+param2+'.value'))){
alert(eval(objForm+param1+'.name')+" mayor que "+eval(objForm+param2+'.name'));
eval(objForm+param+'.value') = eval(objForm+param1+'.name');
} else{
if(parseInt(eval(objFrom+param1+'.value')) < parseInt(eval(objForm+param2+'.value'))){
alert(eval(objForm+param2+'.name')+" mayor que "+eval(objForm+param1+'.name'));
eval(objForm+param+'.value') = eval(objForm+param2+'.name');
} else{
alert(eval(objForm+param1+'.name')+" igual que "+eval(objForm+param2+'.name'));
eval(objForm+param3+'.value') = "Tienen que desempatar";
}
}
}
</script>
En la línea 10 he puesto una alerta para verificar que el problema está en el parseInt.
Gracias de antemano.
1 Respuesta
Respuesta de Jorge Vila
1