Foros del Web » Programando para Internet » Javascript »

asignar eventos a campos dinámicamente

Estas en el tema de asignar eventos a campos dinámicamente en el foro de Javascript en Foros del Web. Hola! Me gustaria saber si se puede asignar dinámicamente eventos a campos en un formulario... Tengo la siguiente función en el fichero eventos.js : Código: ...
  #1 (permalink)  
Antiguo 08/11/2004, 18:01
 
Fecha de Ingreso: octubre-2004
Ubicación: Cork (Irlanda)
Mensajes: 161
Antigüedad: 19 años, 6 meses
Puntos: 1
asignar eventos a campos dinámicamente

Hola!

Me gustaria saber si se puede asignar dinámicamente eventos a campos en un formulario...

Tengo la siguiente función en el fichero eventos.js :


Código:
function MisEventos(nombres){
  var i;
  var n = nombres.length;
  
  for(i = 0;i < n;i++){
    document.forms[0][nombres[i]]["onMouseOver"] = alert('hola');
  }
}
Y en el fichero .html :

Código:
<html>
  ...
<script language=javascript src="eventos.js"></script>
  ...
<form ...>
  <input type = "text" name = "campo1" ...>
  <input type = "text" name = "campo2" ...>
  ...
</form>
  ...
<script>var nombres = new Array("campo1","campo2")</script>
<script>MisEventos(nombres)</script>
 ...
</html>
Pero cuando cargo el fichero .html es cuando aparecen los alerts y no cuando paso el ratón por encima del campo, que es lo que esperaba...

Alguien me podría orientar sobre como hacer esto, si es que se puede?

Gracias.
  #2 (permalink)  
Antiguo 08/11/2004, 18:28
Avatar de SiR.CARAJ0DIDA  
Fecha de Ingreso: junio-2004
Ubicación: Acá
Mensajes: 1.166
Antigüedad: 19 años, 10 meses
Puntos: 4
Y si le asignas una misma id a todos los campos y pruebas esto??

<script>
inputs = document.getElementsByTagName('input');
for (i=0;i<inputs.length;i++)
{
if (inputs[i].id == "mi_id")
{
inputs[i].onmouseover = new Function("alert('hola')");
}
}
</script>
  #3 (permalink)  
Antiguo 08/11/2004, 19:03
 
Fecha de Ingreso: octubre-2004
Ubicación: Cork (Irlanda)
Mensajes: 161
Antigüedad: 19 años, 6 meses
Puntos: 1
Gracias mil SiR.CARAJ0DIDA, aunque he hecho una pequeña modificación pero me ha servido, gracias otra vez

  #4 (permalink)  
Antiguo 09/11/2004, 07:15
 
Fecha de Ingreso: octubre-2004
Ubicación: Cork (Irlanda)
Mensajes: 161
Antigüedad: 19 años, 6 meses
Puntos: 1
Un inciso más... en la parte:


Código:
inputs[i].onmouseover = new Function("alert('hola')");
¿Cómo se puede modificar si ya tengo una función creada para tal propósito?
Es decir, algo así:


Código:
inputs[i].onmouseover = MiFuncion();
Es que lo he intentado así y no me funciona...
  #5 (permalink)  
Antiguo 09/11/2004, 11:31
Avatar de SiR.CARAJ0DIDA  
Fecha de Ingreso: junio-2004
Ubicación: Acá
Mensajes: 1.166
Antigüedad: 19 años, 10 meses
Puntos: 4
Asi?

inputs[i].onmouseover = new Function("MiFuncion()");
  #6 (permalink)  
Antiguo 09/11/2004, 15:18
 
Fecha de Ingreso: octubre-2004
Ubicación: Cork (Irlanda)
Mensajes: 161
Antigüedad: 19 años, 6 meses
Puntos: 1
No me ha funcionado

  #7 (permalink)  
Antiguo 09/11/2004, 17:02
Avatar de SiR.CARAJ0DIDA  
Fecha de Ingreso: junio-2004
Ubicación: Acá
Mensajes: 1.166
Antigüedad: 19 años, 10 meses
Puntos: 4
a mi me funciona...
Código PHP:
<html>
  ...
<
script>
inputs document.getElementsByTagName('input');
function 
lala()
{
for (
i=0;i<inputs.length;i++)
{
if (
inputs[i].id == "mi_id")
{
inputs[i].onmouseover = new Function("MiFuncion()");
}
}
}
function 
MiFuncion()
{
...
}
</script>
<body onload="lala()">
  ...
<form>
  ...
  <input type = "text" id="mi_id" name = "campo1" ...>
  <input type = "text" id="mi_id" name = "campo2" ...>
  ...
</form>
</body>
  ...
</html> 

Última edición por SiR.CARAJ0DIDA; 09/11/2004 a las 17:04
  #8 (permalink)  
Antiguo 10/11/2004, 12:04
 
Fecha de Ingreso: octubre-2004
Ubicación: Cork (Irlanda)
Mensajes: 161
Antigüedad: 19 años, 6 meses
Puntos: 1
ya me funciona

muchas gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:58.