Foros del Web » Programando para Internet » Javascript »

problema ¿dificil? con evento keyPress

Estas en el tema de problema ¿dificil? con evento keyPress en el foro de Javascript en Foros del Web. Hola. Tengo esta consulta: inicialmente validaba perfectamente las teclas presionadas en un text de esta forma clasica que muchos usan: Código HTML: <input type= "text" ...
  #1 (permalink)  
Antiguo 02/06/2006, 07:28
 
Fecha de Ingreso: mayo-2006
Mensajes: 15
Antigüedad: 18 años
Puntos: 0
Pregunta problema ¿dificil? con evento keyPress

Hola. Tengo esta consulta:
inicialmente validaba perfectamente las teclas presionadas en un text de esta forma clasica que muchos usan:

Código HTML:
<input type="text" name="txtImporte" onKeyPress="return ValidarTecla(event, '0123456789-,');" value=""> 
y en el script:

Código:
function ValidarTecla(evento, patron) {
	if (evento.keyCode) return true;
	} else {
		cadena=String.fromCharCode(evento.which);
		if (patron.indexOf(cadena) != -1) return true; else return false;
	}
}
Este codigo impedia ingresar teclas que no esten dentro del parametro patron que se enviaba en la funcion ValidarTecla




Pero ahora necesito asignar eventos dinamicamente a los elementos de una pagina usando el siguiente codigo JavaScript:


Código:
function ValidarTecla(evento, patron) {
	if (evento.keyCode) return true;
	} else {
		cadena=String.fromCharCode(evento.which);
		if (patron.indexOf(cadena) != -1) return true; else return false;
	}
}

function addEvent(obj, evType, fn, useCapture) {
	if (obj.addEventListener) {
		obj.addEventListener(evType, fn, useCapture);
		return true;
	} else if (obj.attachEvent) {
		var r = obj.attachEvent("on"+evType, fn);
		return r;
	} else {
		alert("el evento no puede ser asignado");
	}
}

addEvent(txtImporte, "keypress", ValidarTecla, false);

y esto ya no funciona como en el primer ejemplo, ya que no cancela la inclusion de la tecla que no este dentro del patron, el false que devuelve la funcion ValidarTecla no "se carga" de vuelta en el evento para que sea cancelado. Ademas ya no se como mandar ni el objeto event correspondiente ni el patron con el que se debe controlar las teclas presionadas.
Como podria adaptar el codigo que uso para que funcione como en el primer caso? Es posible que haya alguna forma, algo no documentado que no puedo encontrar, etc.

En Visual Basic por ejemplo, el objeto evento tiene una propiedad Cancel que uno puede ponerle True o False para cancelar. Una propiedad asi aparentemente no existe en el objeto evento del JavaScript.

Es necesario en mi aplicacion poder asignar y desasignar dinamicamente los eventos a los controles.
Gracias

Última edición por magustinapaz; 02/06/2006 a las 07:37 Razón: para mejorar la visualizacion de la parte de codigo de programacion, no se bien como usarlo
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 05:35.