[javascript] ¿Par o impar?

Iniciado por syncro_7, 30 Septiembre 2015, 18:50 PM

0 Miembros y 1 Visitante están viendo este tema.

syncro_7

Hola a tod@s, tengo un ejercicio que me han mandado hoy en clase y no adivino bien la solución, el ejercicio es algo simple, es saber si el número es par/impar. Consiste en introducir un número y que me salga un alert diciendome si es par o impar, mi problema es que ponga el número que ponga me sale que es impar, osea, que tengo el error en la parte del número par. Muchas gracias, os dejo mi código.

Código (javascript) [Seleccionar]

<html>
<head>
<script>
//Calcular si es par o impar
function calcula(num)
{
if (num%2==0) {
   alert("El numero introducido es par");
} else {
   alert("El numero introducido es impar");
}
}

</script>

</head>

<body>
NUMERO: <input type="text" name="num">
<input type="button" value="CALCULAR" onclick="calcula()">
</body>

</html>


El Benjo

No es ese el error, el error es que nunca pasas la variable a la función en javascript:

Tienes un input llamado num y con eso esperas que automática aparezca una variable 'num' en tu código javascript con el valor del input. Lo que tienes que hacer es pasar ese valor como un parámetro:

Código (html4strict) [Seleccionar]
<html>
<head>
<script>
//Calcular si es par o impar
function calcula(num)
{
if (num%2==0) {
   alert("El numero introducido es par");
} else {
   alert("El numero introducido es impar");
}
}

</script>

</head>

<body>
NUMERO: <input type="text" name="num" id="num">
<input type="button" value="CALCULAR" onclick="calcula(num.value)">
</body>

</html>


Fíjate como ademas del name también coloqué la etiqueta id="num". Esto es porque javascript y html utiliza el id para identificar los objetos.
www.es.neftis-ai.com

Sí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.

Eleкtro

#2
Por usar el mismo nombre para el textbox y para el parámetro de la función no significa que por arte de mágia se vaya a pasar un valor automáticamente al llamar a la función, ya que no le estás pasando ningún valor.

Ya te han resuelto la duda y te han epxlicado la razón, pero bueno, de todas formas te muestro este ejemplo para que trates de indentar el código (por el amor de dios), y de paso evaluar si el texto es numérico (Integer) para habilitar el botón:

Código (javascript) [Seleccionar]
<html>
   <head>

       <script type='text/javascript'>

           function IsEven(value) {
               if (value%2==0) {
                   alert("El numero introducido es par");

               } else {
                   alert("El numero introducido es impar");
               }
           }

           function IsInteger(str) {
               bt_calculate.disabled = !(/^[0-9]{1,10}$/.test(str) && str <= Number.MAX_SAFE_INTEGER);
           }

       </script>

   </head>

   <body>
       NUMBER:
       <input type="text"
              name="tb_number"
              id ="tb_number"
              onkeyup="IsInteger(tb_number.value)">

       <input type="button"
              name="bt_calculate"
              id ="bt_calculate"
              value="CALCULAR"
              disabled="disabled"
              onclick="IsEven(tb_number.value)">
   </body>

</html>

(etiqueta js para que la sintaxis se resalte mejor)

Saludos!








syncro_7

Muchas gracias "El Benjo" ahora entendí mi fallo, ¡Me has salvado! Elektro lo haré la próxima vez, lo siento.

El Benjo

Una cosa más (como un plus): cuando trabajes con un formulario y los valores de los objetos dentro del formulario se pasen a la página de destino entonces las variables si son identificadas con la etiqueta 'name'. Un ejemplo de esto es cuando envías el formulario con un input de nombre 'Variable1' mediante "post" a una página con código php. En el código php utilizarías la variable $_POST['Variable1'] para recuperar el valor.
www.es.neftis-ai.com

Sí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.