Foros del Web » Programando para Internet » Javascript »

¿Como pasar parametros a una funcion de un evento?

Estas en el tema de ¿Como pasar parametros a una funcion de un evento? en el foro de Javascript en Foros del Web. Hola! Tengo este fragmento de codigo js: Código: var maxlength = parseInt(selects[i].getAttribute("maxlength")); if(maxlength > 0){ selects[i].onkeydown = function(){ if (this.value.length > maxlength) { this.value.substring(0, maxlength); ...
  #1 (permalink)  
Antiguo 13/09/2010, 14:12
 
Fecha de Ingreso: febrero-2007
Mensajes: 309
Antigüedad: 17 años, 1 mes
Puntos: 16
¿Como pasar parametros a una funcion de un evento?

Hola!

Tengo este fragmento de codigo js:

Código:
var maxlength = parseInt(selects[i].getAttribute("maxlength"));

if(maxlength > 0){
	selects[i].onkeydown = function(){
		if (this.value.length > maxlength) {
			this.value.substring(0, maxlength);
		}
	}
}
Lo que no funciona es que maxlength dentro de la funcion no esta disponible ¿como se lo paso como parametro?
__________________
Responder encuestas
  #2 (permalink)  
Antiguo 13/09/2010, 14:25
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: ¿Como pasar parametros a una funcion de un evento?

Hola

Pásaselo como un parámetro
Cita:
selects[i].onkeydown = function(maxlength){
Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 13/09/2010, 14:44
 
Fecha de Ingreso: febrero-2007
Mensajes: 309
Antigüedad: 17 años, 1 mes
Puntos: 16
Respuesta: ¿Como pasar parametros a una funcion de un evento?

Hola Adler, ya probé pasarlo asi pero maxlength queda tipo de objeto KeyboardEvent
__________________
Responder encuestas
  #4 (permalink)  
Antiguo 13/09/2010, 14:52
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: ¿Como pasar parametros a una funcion de un evento?

@Adler,
a modo de razonamiento... cuando el evento se dispara, ¿como le vas a pasar por parametro maxlength? o sea, los handlers automaticamente reciben un solo parametro, el objeto event. no hay forma -o al menos yo no conozco- de pasar parametros definidos por el autor a un evento. para tales fines tendria que crearse una funcion literal el cual es asignada como handler y dentro de este invocar otra funcion en el cual le pasas los parametros.

@quebien,
basandome en lo que muestras, deberia funcionarte siempre y cuando si ese codigo esta dentro de una funcion, el cual me parece que asi es. la variable local maxlength deberia mantener su valor porque estas creando un closure con el handler de keydown.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 13/09/2010, 14:56
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: ¿Como pasar parametros a una funcion de un evento?

Si es que llevo una tarde ......

Cita:
Iniciado por zerokilled Ver Mensaje
@Adler,
a modo de razonamiento... cuando el evento se dispara, ¿como le vas a pasar por parametro maxlength? o sea, los handlers automaticamente reciben un solo parametro, el objeto event. no hay forma -o al menos yo no conozco- de pasar parametros definidos por el autor a un evento. para tales fines tendria que crearse una funcion literal el cual es asignada como handler y dentro de este invocar otra funcion en el cual le pasas los parametros.
Ha de ser una variable global
Algo como esto
Cita:
var val = '';
function funcion() {
val = 'prueba';
document.getElementById('elem').onclick = function() {
alert(val)
}
}
Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #6 (permalink)  
Antiguo 13/09/2010, 15:03
 
Fecha de Ingreso: febrero-2007
Mensajes: 309
Antigüedad: 17 años, 1 mes
Puntos: 16
Respuesta: ¿Como pasar parametros a una funcion de un evento?

Gracias a ambos, efectivamente la variable estaba disponible, pero como tenia un error en el codigo yo pensaba que no lo estaba ya que no pasaba nada.

El error estaba que la linea:
this.value.substring(0, maxlength);

Debia ser:
this.value = this.value.substring(0, maxlength);

gracias a ambos!

Etiquetas: funcion, parametros, pasar, eventos
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 14:03.