Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: syncro_7 en 30 Septiembre 2015, 18:50 pm



Título: [javascript] ¿Par o impar?
Publicado por: syncro_7 en 30 Septiembre 2015, 18:50 pm
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
  1. <html>
  2. <head>
  3. <script>
  4. //Calcular si es par o impar
  5. function calcula(num)
  6. {
  7. if (num%2==0) {
  8.   alert("El numero introducido es par");
  9. } else {
  10.   alert("El numero introducido es impar");
  11. }
  12. }
  13.  
  14. </script>
  15.  
  16. </head>
  17.  
  18. <body>
  19. NUMERO: <input type="text" name="num">
  20. <input type="button" value="CALCULAR" onclick="calcula()">
  21. </body>
  22.  
  23. </html>
  24.  


Título: Re: [javascript] ¿Par o impar?
Publicado por: El Benjo en 30 Septiembre 2015, 19:46 pm
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
  1. //Calcular si es par o impar
  2. function calcula(num)
  3. {
  4. if (num%2==0) {
  5.   alert("El numero introducido es par");
  6. } else {
  7.   alert("El numero introducido es impar");
  8. }
  9. }
  10.  
  11.  
  12. </head>
  13.  
  14. NUMERO: <input type="text" name="num" id="num">
  15. <input type="button" value="CALCULAR" onclick="calcula(num.value)">
  16. </body>
  17.  
  18. </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.


Título: Re: [javascript] ¿Par o impar?
Publicado por: Eleкtro en 30 Septiembre 2015, 20:37 pm
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
  1. <html>
  2.    <head>
  3.  
  4.        <script type='text/javascript'>
  5.  
  6.            function IsEven(value) {
  7.                if (value%2==0) {
  8.                    alert("El numero introducido es par");
  9.  
  10.                } else {
  11.                    alert("El numero introducido es impar");
  12.                }
  13.            }
  14.  
  15.            function IsInteger(str) {
  16.                bt_calculate.disabled = !(/^[0-9]{1,10}$/.test(str) && str <= Number.MAX_SAFE_INTEGER);
  17.            }
  18.  
  19.        </script>
  20.  
  21.    </head>
  22.  
  23.    <body>
  24.        NUMBER:
  25.        <input type="text"
  26.               name="tb_number"
  27.               id ="tb_number"
  28.               onkeyup="IsInteger(tb_number.value)">
  29.  
  30.        <input type="button"
  31.               name="bt_calculate"
  32.               id ="bt_calculate"
  33.               value="CALCULAR"
  34.               disabled="disabled"
  35.               onclick="IsEven(tb_number.value)">
  36.    </body>
  37.  
  38. </html>
(etiqueta js para que la sintaxis se resalte mejor)

Saludos!


Título: Re: [javascript] ¿Par o impar?
Publicado por: syncro_7 en 30 Septiembre 2015, 21:55 pm
Muchas gracias "El Benjo" ahora entendí mi fallo, ¡Me has salvado! Elektro lo haré la próxima vez, lo siento.


Título: Re: [javascript] ¿Par o impar?
Publicado por: El Benjo en 1 Octubre 2015, 06:39 am
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.