Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Linton en 15 Julio 2013, 14:13 pm



Título: [JS]Duda sobre función múltiple
Publicado por: Linton en 15 Julio 2013, 14:13 pm
En el curso de Javascriptya.com se plantea este ejercicio de formularios:

"Crear un formulario con tres botones con las leyendas "1", "2" y "3". Mostrar un mensaje indicando qué botón se presionó"

Y la solución ofrecida por la misma web es la siguiente:

Código
  1. <script type="text/javascript">
  2.  function presion1()
  3.  {
  4.    alert('Se presionó el botón 1');
  5.  }
  6.  
  7.  function presion2()
  8.  {
  9.    alert('Se presionó el botón 2');
  10.  }
  11.  
  12.  function presion3()
  13.  {
  14.    alert('Se presionó el botón 3');
  15.  }
  16. </script>
  17.  
  18.  
  19. <form>
  20.  <input type="button" onClick="presion1()" value="Boton 1">
  21.  <input type="button" onClick="presion2()" value="Boton 2">
  22.  <input type="button" onClick="presion3()" value="Boton 3">
  23. </form>

Me quedo un poco desconcertado... ¿hay que crear tantas funciones como botones, no existe otra opción?  :huh:

Gracias por la ayuda, un saludo.


Título: Re: [JS]Duda sobre función múltiple
Publicado por: ivancea96 en 15 Julio 2013, 14:50 pm
Código
  1. <script type="text/javascript">
  2.  function presion(a)
  3.  {
  4.    alert('Se presionó el botón ' + a + '.');
  5.  }
  6. </script>
  7.  
  8.  
  9. <form>
  10.  <input type="button" onClick="presion(1)" value="Boton 1">
  11.  <input type="button" onClick="presion(2)" value="Boton 2">
  12.  <input type="button" onClick="presion(3)" value="Boton 3">
  13. </form>

Bueno, sería algo así. Tú le pasas un valor a la funcion "function a(valor, valor2, valor3,...){}".
Y luego ya, con el valor, la función hace lo que le mandes. El valor se guardará en la variable que tu le pongas. Ej.
Código
  1. function hola(mensaje){
  2. alert(mensaje);
  3. }


Título: Re: [JS]Duda sobre función múltiple
Publicado por: Linton en 15 Julio 2013, 18:04 pm
¡Muchas gracias, un saludo!  :)



Pues no sé cómo se hace para relacionar la variable "a" del alert con los eventos onClick. Y probar tanteando no funciona en javascript, porque puede darte fallo total cuando sólo te faltaba un paréntesis  :(

¡Ayuda, please!  :)


Título: Re: [JS]Duda sobre función múltiple
Publicado por: 1mpuls0 en 15 Julio 2013, 21:41 pm
A qué te refieres con relacionar? qué mas necesitas hacer' :P


Título: Re: [JS]Duda sobre función múltiple
Publicado por: ivancea96 en 16 Julio 2013, 01:06 am
Pues no sé cómo se hace para relacionar la variable "a" del alert con los eventos onClick. Y probar tanteando no funciona en javascript, porque puede darte fallo total cuando sólo te faltaba un paréntesis  :(

Código
  1. <input type="button" onClick="presion(1)" value="Boton 1">

El '1' que hay en "presion(1)" es el valor que tendrá 'a'.

Si fuera:
Código
  1. function presion(a, b, c){}

Se podría llamaría con:
Código
  1. onClick="presion(1, hola, true)"

(a=1, b="hola", c="true").


Título: Re: [JS]Duda sobre función múltiple
Publicado por: Linton en 16 Julio 2013, 10:23 am
¡Rayos qué pifia, puse presion1() en vez de presion(1)!

Muchas gracias por tu aclaración, un saludo  :)


Título: Re: [JS]Duda sobre función múltiple
Publicado por: Linton en 18 Julio 2013, 19:56 pm
Sigo preguntando... ¿los valores de a sólo pueden ser números o booleanos, no strings?

Gracias, un saludo.


Título: Re: [JS]Duda sobre función múltiple
Publicado por: ivancea96 en 18 Julio 2013, 23:31 pm
Los valores de "a" pueden ser también string. Para que sea string, pon la string entre comillas simples ( ' ).

Ej.
Código
  1. onClick="presion('hola')"

PD: Perdón por ponerte antes eso mal. Me olvidé d elas comillas.


Título: Re: [JS]Duda sobre función múltiple
Publicado por: Linton en 19 Julio 2013, 07:43 am
Aaah qué torpe, tenía que haberlo imaginado   :P

¡Muchas gracias!  :)