Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] IE8 se cierra solo con el keyup

Estas en el tema de IE8 se cierra solo con el keyup en el foro de Javascript en Foros del Web. Hola, Tengo el siguiente codigo jQuery para validar un formato de email. Funciona perfecto en IE9, IE10, Firefox, Chrome, Safari, menos en IE8 !!! @import ...
  #1 (permalink)  
Antiguo 09/10/2013, 08:02
Avatar de carscx  
Fecha de Ingreso: noviembre-2008
Mensajes: 227
Antigüedad: 16 años, 1 mes
Puntos: 10
IE8 se cierra solo con el keyup

Hola,

Tengo el siguiente codigo jQuery para validar un formato de email. Funciona perfecto en IE9, IE10, Firefox, Chrome, Safari, menos en IE8 !!!

Código Javascript:
Ver original
  1. $("input#mailOlvida").keyup(function(){
  2.                          
  3.                         $('span.errorMSG').remove();
  4.                             var inputVal = $(this).val();
  5.                             var emailReg = /^([\w-\.]+@{1}([\w-]+\.)+[\w-]{2,4})?$/;
  6.                             if(!emailReg.test(inputVal)) {
  7.                                 $(this).after('<span class="errorMSG">Escriba un e-mail válido.</span>');
  8.                                 $("#recuerdaPassBtn").addClass("disabledBtn");                             
  9.                             }else{
  10.                                 $("#recuerdaPassBtn").removeClass("disabledBtn");
  11.                             }
  12.                     });

Lo que hace es que en cuanto escribo un caracter en el campo aparece el mensaje de Windows, Internet Explorer ha dejado de funcionar y debe cerrarse. Es la primera vez que me ocurre algo asi. Espero que me puedan ayudar.

GRACIAS!
__________________
Frontend Developer
JS+HTML5+CSS3
Backend Developer
PHP+MySQL
  #2 (permalink)  
Antiguo 09/10/2013, 08:56
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 11 años, 3 meses
Puntos: 578
Respuesta: IE8 se cierra solo con el keyup

Hola. En vez de esa propiedad deberías usar event.wich porque evidentemente hay bug con IE.

http://api.jquery.com/event.which/

http://stackoverflow.com/questions/1...net-explorer-8

Saludos
  #3 (permalink)  
Antiguo 09/10/2013, 09:03
Avatar de carscx  
Fecha de Ingreso: noviembre-2008
Mensajes: 227
Antigüedad: 16 años, 1 mes
Puntos: 10
Respuesta: IE8 se cierra solo con el keyup

Gracias!

Revisare esa documentacion, a ver si puedo modificar la funcion.

Saludos,
__________________
Frontend Developer
JS+HTML5+CSS3
Backend Developer
PHP+MySQL
  #4 (permalink)  
Antiguo 09/10/2013, 09:16
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 11 años, 3 meses
Puntos: 578
Respuesta: IE8 se cierra solo con el keyup

Oh, si esto no iba de eventos de código del teclado...

Mejor usa keydown:

http://api.jquery.com/keydown/

Perdona mi estupidez

Última edición por PHPeros; 09/10/2013 a las 09:23
  #5 (permalink)  
Antiguo 09/10/2013, 10:05
Avatar de carscx  
Fecha de Ingreso: noviembre-2008
Mensajes: 227
Antigüedad: 16 años, 1 mes
Puntos: 10
Respuesta: IE8 se cierra solo con el keyup

Gracias PHPeros

Ya probe con keydown, keyup y keypress, no funciona con ninguno de los 3, la verdad que es raro raro, probe la funcion fuera del proyecto, y funciona. Pero no puedo entender como el keyup puede entrar en conflicto con cualquier otra cosa.
__________________
Frontend Developer
JS+HTML5+CSS3
Backend Developer
PHP+MySQL
  #6 (permalink)  
Antiguo 09/10/2013, 10:23
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 13 años, 3 meses
Puntos: 397
Respuesta: IE8 se cierra solo con el keyup

Que versión de jQuery usas?

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #7 (permalink)  
Antiguo 09/10/2013, 10:28
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 11 años, 3 meses
Puntos: 578
Respuesta: IE8 se cierra solo con el keyup

Igual es que tienes que usar:

Código Javascript:
Ver original
  1. .bind("keydown", //funcion

Por razones de versión como dice jonni.
  #8 (permalink)  
Antiguo 09/10/2013, 10:50
Avatar de carscx  
Fecha de Ingreso: noviembre-2008
Mensajes: 227
Antigüedad: 16 años, 1 mes
Puntos: 10
Respuesta: IE8 se cierra solo con el keyup

Utilizo la 1.9.1 del CDN de Google.
__________________
Frontend Developer
JS+HTML5+CSS3
Backend Developer
PHP+MySQL
  #9 (permalink)  
Antiguo 09/10/2013, 11:12
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 13 años, 3 meses
Puntos: 397
Respuesta: IE8 se cierra solo con el keyup

Bueno, empecé a hacer pruebas y resulta que en mi IE 10 cuando emulaba el código en IE 8 me daba la sorpresa que no funcionaba a no ser de que la función del keyup estuviese dentro de :

Código Javascript:
Ver original
  1. $(window).load(function(){
  2.     //code here....
  3. })
  4.  
  5. //ó
  6.  
  7. $(document).ready(function(){
  8.     //code here....
  9. });
Has las pruebas y nos cuentas

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #10 (permalink)  
Antiguo 09/10/2013, 11:19
Avatar de carscx  
Fecha de Ingreso: noviembre-2008
Mensajes: 227
Antigüedad: 16 años, 1 mes
Puntos: 10
Respuesta: IE8 se cierra solo con el keyup

SI, eso era lo primero que me marcaba, que tenia que estar dentro del DOM ready.

Finalmente lo pude hacer andar!!

El problema venia por otro lado completamente distinto.

Probando linea por linea, comentando y descomentando, prueba y error.

Pude comprobar que el fallo venia por el .remove() del mensaje.

Lo modifiqué y funciona perfecto.

Paso el codigo corregido.

Lo deje con la funcion .bind() que me pareció mas apropiada.

Código Javascript:
Ver original
  1. $("input#mailOlvida").bind("keydown", function() {  
  2.                         $(this).parent().find(".errorMSG").hide(); 
  3.                         var inputVal = $("input#mailOlvida").val();
  4.                         var emailReg = /^([\w-\.]+@{1}([\w-]+\.)+[\w-]{2,4})?$/;
  5.                         if(!emailReg.test(inputVal)) {
  6.                             $(this).after('<span class="errorMSG">Escriba un e-mail válido.</span>');
  7.                             $("#recuerdaPassBtn").addClass("disabledBtn");                             
  8.                         }else{
  9.                             $("#recuerdaPassBtn").removeClass("disabledBtn");
  10.                         }
  11.                     });


Muchas gracias a todos!!!

Lo marco como solucionado!
__________________
Frontend Developer
JS+HTML5+CSS3
Backend Developer
PHP+MySQL

Etiquetas: cierra, funcion, ie8, input, jquery
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:59.