Foros del Web » Programando para Internet » Javascript »

Porque no funciona en ie y en mozilla si

Estas en el tema de Porque no funciona en ie y en mozilla si en el foro de Javascript en Foros del Web. 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" ...
  #1 (permalink)  
Antiguo 27/06/2007, 15:08
 
Fecha de Ingreso: junio-2007
Mensajes: 1
Antigüedad: 16 años, 10 meses
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
  #2 (permalink)  
Antiguo 28/06/2007, 09:41
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años
Puntos: 35
Re: Porque no funciona en ie y en mozilla si

loading...........


Pasa que IE es una kk...

Agrega esto antes de lanzar tu script

Código PHP:
Array.prototype.indexOf= function(object) {
    for (var 
0length this.lengthlengthi++)
      if (
this[i] == object) return i;
    return -
1;

:p ... bueno pasa que las variables de tipo Array en IE no tienen el método indexOf.


connection closed.
__________________

Maborak Technologies
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 19:17.