Foros del Web » Programando para Internet » Javascript »

Por que no funciona en IE8

Estas en el tema de Por que no funciona en IE8 en el foro de Javascript en Foros del Web. Hola amigos, Vereis tengo esta funcion que hace que cuando no hay ningun caracter o solo se han introducido espacios el submit este deshabilitado y ...
  #1 (permalink)  
Antiguo 29/07/2013, 02:22
 
Fecha de Ingreso: marzo-2007
Mensajes: 751
Antigüedad: 17 años, 1 mes
Puntos: 4
Por que no funciona en IE8

Hola amigos,

Vereis tengo esta funcion que hace que cuando no hay ningun caracter o solo se han introducido espacios el submit este deshabilitado y funciona bien el problema es que en IE8 aunque metamos algo que no sea un espacio sigue deshabilitado.

La funcion es esta en concreto:

Código Javascript:
Ver original
  1. <script>
  2.  
  3. function es_vacio(){
  4.   var valor=document.getElementById('matricula').value;
  5.   valor=valor.trim();
  6.     if (valor== ""){  
  7.      
  8.             document.getElementById('boton_busqueda').disabled=true;
  9.    
  10.     }else{
  11.  
  12.             document.getElementById('boton_busqueda').disabled=false;    
  13.     }
  14. }          
  15.  
  16. </script>

y este el input y submit:

Código HTML:
Ver original
  1. <input type="text" id="matricula" name="s" class="input_buscador" placeholder="'.$lugar.'" onkeyup="es_vacio()"/>
  2. <input type="submit" id="boton_busqueda" disabled="true" class="boton_input_buscador" value="" onclick="return sin_venta();">


A ver si alguien sabe por que y si se podria dar alguna solucion,

Un saludo amigos!!
  #2 (permalink)  
Antiguo 29/07/2013, 03:38
darkhack3r22
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Por que no funciona en IE8

Donde declaraste el sin
  #3 (permalink)  
Antiguo 29/07/2013, 03:39
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Por que no funciona en IE8

ie8 no acepta el método trim(). aquí tienes la solución
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #4 (permalink)  
Antiguo 29/07/2013, 03:40
darkhack3r22
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Por que no funciona en IE8

Placeholder tampoco va!
  #5 (permalink)  
Antiguo 29/07/2013, 10:52
 
Fecha de Ingreso: marzo-2007
Mensajes: 751
Antigüedad: 17 años, 1 mes
Puntos: 4
Respuesta: Por que no funciona en IE8

Hola amigos gracias por vuestra atencion

IsaBelM, no entiendo muy bien lo que esta haciendo el link que me enviaste, en esta funcion esta usando una expresion regular para que?

Te refieres a que use una expresion regular para quitar los espacios y detectar si esta vacio el campo?

En ese caso no sabria como crear la expresion regular no tengo conocimientos con estas expresiones.

He modificado mi funcion pero seguro esta mal, tendria que cambiar la expresion regular, como la ves?:

Código Javascript:
Ver original
  1. var valor=document.getElementById('matricula').value;
  2.  
  3.     if(!valor.prototype.trim) {
  4.       valor.prototype.trim = function () {
  5.         return this.replace(/^\s+|\s+$/g,'');
  6.       };
  7.     }
  8.  
  9.  
  10.     if (valor== ""){  
  11.      
  12.             document.getElementById('boton_busqueda').disabled=true;
  13.    
  14.     }else{
  15.  
  16.             document.getElementById('boton_busqueda').disabled=false;    
  17.     }
  18. }

Un saludo
  #6 (permalink)  
Antiguo 29/07/2013, 13:27
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Por que no funciona en IE8

no es estrictamente necesario usar prototype. con esto te es mas que suficiente
Cita:
valor=valor.replace(/^\s+|\s+$/g,'');
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #7 (permalink)  
Antiguo 29/07/2013, 13:42
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 3 meses
Puntos: 29
Respuesta: Por que no funciona en IE8

Si no entiendes expresiones regulares puedes usar esto:

Código Javascript:
Ver original
  1. String.prototype.trim=function(){
  2. var tmp=this;
  3. while(tmp.charAt(0)==' ')tmp=tmp.substring(1,tmp.length);
  4. while(tmp.charAt(tmp.length-1)==' ')tmp=tmp.substring(0,tmp.length-1);
  5. return tmp;
  6. }

Saludos

Etiquetas: funcion, ie8, input
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 06:39.