Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/06/2007, 15:08
P3P3
 
Fecha de Ingreso: junio-2007
Mensajes: 1
Antigüedad: 17 años
Puntos: 0
Porque no funciona en ie y en mozilla si

AYUDA PORFA


Hola estoy trabajando con javascript para hacer una validación lexica en un control de <input type="text"> mi codigo es el siguiente:

<input type="text" id="id" name="id" onkeypress="var natural = new Natural(); return natural.validaLexico(event);" />

Estoy manejando un objeto de tipo Natural y la funcion miembro que hace la validacion se llama validaLexico. Esta validación la hago cuando se preiona una tecla dentro del control.

Dentro de mi archivo .js tego dos clases definidas una donde tengo los conjuntos de arreglos en codigo ascii para hacer la validación:

La primera clase es:

var Validador = function(){ // conjunto de arreglos de los valores ascii
this.signoMenos=45;
this.numeros = new Array(48,49,50,51,52,53,54,55,56,57);
this.punto=46;
this.borrarTab = new Array(8,9); // backspace y tab
this.espacio = 32;
}

// funcion que regresa el codigo ascii de la tecla que se presiono
Validador.prototype.codeTouche = function(e) {
var keynum = 9; //valor del tab en gecko
if(window.event){
keynum=window.event.keyCode;
}
else if(e.which){
keynum = e.which;
}
return keynum;
}

La otra clase de nombre Natural es la siguiente:

var Natural = function(){

this.valida = new Validador();
this.naturales = this.valida.borrarTab.concat(this.valida.numeros);

}

Natural.prototype.validaLexico = function(e){

var k = this.valida.codeTouche(e);
// alert(k);
// alert(this.naturales.indexOf(k));

if(this.naturales.indexOf(k)!=-1){
return true;
}
else{
return false;
}

}
El chiste es que en mozilla si funciona bien y en ie no.

El control solo debe aceptar numeros, en el ie me sale el error de que "El objeto no acepta esta propiedad o método "

Si quieren descomenten la linea de alert(this.naturales.indexOf(k)); y en mozilla si sale el alert y en ie no.

Alguien me puede decir por que ??

Gracias