Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/05/2010, 16:24
Avatar de goncofre
goncofre
 
Fecha de Ingreso: febrero-2008
Ubicación: Santiago, Chile
Mensajes: 22
Antigüedad: 16 años, 2 meses
Puntos: 0
Agregar evento a input dinamico

El cuento es que creo un input de este tipo:

Código:
var input1 = document.createElement("input");
input1.name = "valor";
input1.id = "valor";
input1.type = "text";
input1.value = "0";
Y tengo esta función:

Código:
function validaTecla(elEvento, permitidos) {
   // Variables que definen los caracteres permitidos
   var numeros = "0123456789";
   var caracteres = " abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ";
   var numeros_caracteres = numeros + caracteres;
   var teclas_especiales = [8, 37, 39, 46];
   // 8 = BackSpace, 46 = Supr, 37 = flecha izquierda, 39 = flecha derecha
   // Seleccionar los caracteres a partir del parámetro de la función
   switch(permitidos) {
      case "num":
         permitidos = numeros;
         break;
      case "car":
         permitidos = caracteres;
         break;
      case "num_car":
         permitidos = numeros_caracteres;
         break;
   }
   // Obtener la tecla pulsada
   var evento = elEvento || window.event;
   var codigoCaracter = evento.charCode || evento.keyCode;
   var caracter = String.fromCharCode(codigoCaracter);
   // Comprobar si la tecla pulsada es alguna de las teclas especiales
   // (teclas de borrado y flechas horizontales)
   
   var tecla_especial = false;
   for(var i in teclas_especiales) {
      if(codigoCaracter == teclas_especiales[i]) {
         tecla_especial = true;
         break;
      }
   }
   // Comprobar si la tecla pulsada se encuentra en los caracteres permitidos
   // o si es una tecla especial
   return permitidos.indexOf(caracter) != -1 || tecla_especial;
}
Al input quiero agregarle esa función, lo hago de esta forma, pero no me resulta:

Código:
input1.onkeypress = function(event) {validaTecla(event,"num");}
La función me resulta si la agrega de la forma normal, es decir, en los input creados con HTML, pero no los creados desde Javascript.

De antemano gracias.