Foros del Web » Programando para Internet » Javascript »

pulsar o no la tecla TAB en IE

Estas en el tema de pulsar o no la tecla TAB en IE en el foro de Javascript en Foros del Web. Hola, tengo este código: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original function controltag ( e ) { var tecla ; tecla = ( document. all ...
  #1 (permalink)  
Antiguo 23/05/2011, 16:28
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años, 8 meses
Puntos: 15
pulsar o no la tecla TAB en IE

Hola, tengo este código:

Código Javascript:
Ver original
  1. function controltag(e)
  2. {
  3. var tecla;
  4. tecla = (document.all) ? e.keyCode : e.which;
  5. if(tecla == 8)
  6. {return true;}
  7. var patron;
  8. patron = /[0-9a-zA-Z]/\t
  9. var te;
  10. te = String.fromCharCode(tecla);
  11. return patron.test(te);
  12. }


El tema es que quiero permitir que se pueda pulsar la tecla Tabulador. Para ello uso esta expresión regular:

patron = /[0-9a-zA-Z]/\t

si no pongo el \t en el Mozilla no me deja pulsar TAB. Al ponerlo, se arregla, ya va, pero en Internet Explorer me sale este mensaje de error (aunque sí que me va con y sin el \t).


Mensaje: Invalid character
Línea: 8
Carácter: 23
Código: 0
URI: http://localhost/web/js/control.js
  #2 (permalink)  
Antiguo 24/05/2011, 03:00
 
Fecha de Ingreso: noviembre-2005
Mensajes: 426
Antigüedad: 19 años
Puntos: 87
Respuesta: pulsar o no la tecla TAB en IE

Código Javascript:
Ver original
  1. patron = /[0-9a-zA-Z]/\t

Eso es un error. Creo que lo que quieres hacer es esto:

Código Javascript:
Ver original
  1. patron = /[0-9a-zA-Z]|\t/
  #3 (permalink)  
Antiguo 24/05/2011, 12:46
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años, 8 meses
Puntos: 15
Respuesta: pulsar o no la tecla TAB en IE

pues no me va. me desaparece el error en Internet Explorer pero no me deja pulsar Tab en Mozilla ;(
  #4 (permalink)  
Antiguo 24/05/2011, 18:41
 
Fecha de Ingreso: mayo-2011
Mensajes: 171
Antigüedad: 13 años, 7 meses
Puntos: 32
Respuesta: pulsar o no la tecla TAB en IE

el dilema te va por que en javascript las expreciones regulares van /aqui/ y tu /[0-9a-zA-Z]/\t tienes la \t <-- fuera
pero de = forma no va a funcionar a si que hazlo de esta manera

Código Javascript:
Ver original
  1. function controltag(e) {
  2.         tecla = (document.all) ? e.keyCode : e.which;
  3.         if (tecla==8) return true; // para la tecla de retroseso
  4.        else if (tecla==0||tecla==9) //<-- PARA EL TABULADOR-> su keyCode es 9 pero en tecla se esta transformando a 0 asi que porsiacaso los dos
  5.         patron =/[A-Za-z\s]/;
  6.         te = String.fromCharCode(tecla);
  7.         return patron.test(te);
  8.     }

Código HTML:
Ver original
  1. <input type="text" name="nombre" onkeypress="return validarLetras(event)" />
  2.     <input type="text" name="dsadas" onkeypress="return validarLetras(event)" />

y tabulan en chrome, opera, IE y FF



...... se espera karmita....XD

Última edición por dukeblass; 24/05/2011 a las 18:53
  #5 (permalink)  
Antiguo 24/05/2011, 23:45
 
Fecha de Ingreso: noviembre-2005
Mensajes: 426
Antigüedad: 19 años
Puntos: 87
Respuesta: pulsar o no la tecla TAB en IE

Cita:
Iniciado por humanista Ver Mensaje
pues no me va. me desaparece el error en Internet Explorer pero no me deja pulsar Tab en Mozilla ;(
Probe el codigo en Mozilla y esta funcionando bastante bien...

En firefox debe estar enfocado en el documento para poder capturar la tecla "Tab", y preferiblemente enfocado en un <input> o algun otro elemento de formulario.
  #6 (permalink)  
Antiguo 25/05/2011, 00:15
 
Fecha de Ingreso: noviembre-2005
Mensajes: 426
Antigüedad: 19 años
Puntos: 87
Respuesta: pulsar o no la tecla TAB en IE

por cierto... si sabes que "tabulador" no es una letra/caracter valido para inputs html por lo que no puede ser escrito, correcto?
  #7 (permalink)  
Antiguo 25/05/2011, 02:15
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años, 8 meses
Puntos: 15
Respuesta: pulsar o no la tecla TAB en IE

InKarC te refieres a que tengo que poner el foco en el body?

Código HTML:
<BODY OnLoad="document.nameform.campo.focus();"> 
respecto a lo otro, no puedo escribir tabulador? porque? entiendo que pulsar la tecla Tab no tiene nada que ver con escribir la palabra tabulador...
  #8 (permalink)  
Antiguo 25/05/2011, 07:14
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años, 8 meses
Puntos: 15
Respuesta: pulsar o no la tecla TAB en IE

dukeblass te daría karma con mucho gusto pero no me vaaaa ;(
  #9 (permalink)  
Antiguo 25/05/2011, 08:40
 
Fecha de Ingreso: mayo-2011
Mensajes: 171
Antigüedad: 13 años, 7 meses
Puntos: 32
Respuesta: pulsar o no la tecla TAB en IE

si va solo faltava el return true ...XD
quedaria asi:
Código Javascript:
Ver original
  1. function controltag(e) {
  2.     tecla = (document.all) ? e.keyCode : e.which;
  3.     if (tecla==8) return true; // para la tecla de retroseso
  4.     else if (tecla==0||tecla==9)  return true; //<-- PARA EL TABULADOR-> su keyCode es 9 pero en tecla se esta transformando a 0 asi que porsiacaso los dos
  5.     patron =/[A-Za-z\s]/;
  6.     te = String.fromCharCode(tecla);
  7.     return patron.test(te);
  8. }

Código HTML:
Ver original
  1. <input type="text" name="nombre" onkeypress="return controltag(event)" />
  2.     <input type="text" name="dsadas" onkeypress="return controltag(event)" />





...... se espera karmita....XD
  #10 (permalink)  
Antiguo 25/05/2011, 12:35
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años, 8 meses
Puntos: 15
Respuesta: pulsar o no la tecla TAB en IE

ey dukeblass funciona a las mil maravillas!!! gracias, ahí tienes tu más que merecido karma!

Etiquetas: pulsar, tab, tecla
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 08:02.