Foros del Web » Programando para Internet » Javascript »

Tecla TAB en mozilla

Estas en el tema de Tecla TAB en mozilla en el foro de Javascript en Foros del Web. Saludos a los miembros del foro, me ha llegado una interrogante sobre la tecla TAB, en el explore funciona normal manda el foco a los ...
  #1 (permalink)  
Antiguo 15/06/2011, 09:17
 
Fecha de Ingreso: mayo-2011
Ubicación: Lima
Mensajes: 89
Antigüedad: 12 años, 11 meses
Puntos: 0
Tecla TAB en mozilla

Saludos a los miembros del foro, me ha llegado una interrogante sobre la tecla TAB, en el explore funciona normal manda el foco a los input y alos demas controles, pero en el mozilla "no" solo manda el foco a un input y luego ya no, como si desapareciera esa funcionalidad, quisiera saber a que se debe esto o si es que debo configurar el mozilla, intente con codigo javascript:
Código HTML:
    function controltag(e) {
        tecla = (document.all) ? e.keyCode : e.which;
        if (tecla==8) return true; // para la tecla de retroseso
        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
        patron =/[A-Za-z\s]/;
        te = String.fromCharCode(tecla);
        return patron.test(te);
    }
Que justamente encontre en este foro, pero lo que sucede tambien esque tengo otra funcion en el evento onkeypress, como validad letras y numeros.. o como haria para que funcionen las dos si esque el codigo estubiera bien.. de antemano les agradesco por su ayuda... Gracias....
  #2 (permalink)  
Antiguo 15/06/2011, 09:49
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Tecla TAB en mozilla

buenas,
el caso particular de firefox es que algunas teclas las registra en la propiedad keyCode y en otros casos en which. por tanto, la siguiente linea no la considero adecuada tecla = (document.all) ? e.keyCode : e.which;. fijate que estas comprobando si el navegador contiene la propiedad document.all pero no necesariamente porque no exista significa que el navegador utiliza which en lugar de keyCode. personalmente para mi lo adecuado seria devolver uno u otro si el valor no es cero. tecla = e.which || e.keyCode;.

__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 15/06/2011, 10:01
 
Fecha de Ingreso: mayo-2011
Ubicación: Lima
Mensajes: 89
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: Tecla TAB en mozilla

gracias por la respuesta zerokilled, disculpa por mi novates en javascript pero como quedaria el codigo asi
Código HTML:
Ver original
  1. function controltag(e) {
  2.    
  3.         if (tecla==8) return true; // para la tecla de retroseso
  4.         else if (tecla==e.keyCode||tecla==e.which)  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.     }
Y con respecto a lo otro si ya tengo en la funcion onkeypress que llama a una funcion de validacion de letras o numeros como haria en los input para invocar a esta nueva funcion"controltag" serian dos funciones no hay problema con eso, de antemano gracias...
  #4 (permalink)  
Antiguo 15/06/2011, 10:14
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Tecla TAB en mozilla

sobre lo primero, solo tenias que ubicar la linea que te indique y reemplazarla por la que sugeri. en tu codigo inicial, seria la segunda linea. sobre el segundo asunto, lo adecuado seria que registraras los handlers (la funcion que se invoca cuando el evento ocurre) con metodos como addEventListener ya que estos permiten registrar mas de un handler. pero dado tu conocimiento, para que no te compliques lo mejor seria que utilices otra tecnica. consiste en invocar manualmente las funciones dentro del evento y pasarle como argumento el objeto event para que cada una pueda operar correctamente. al invocar las funciones, debes retonar su valor para determinar si cancelar o permitir el evento.

Código:
<element eventType="return foo(event) && bar(event);">
no obstante, te recomiendo el siguiente material que habla sobre los modelos de eventos. http://kusor.net/traducciones/brainj...vents1.es.html
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 15/06/2011, 13:30
 
Fecha de Ingreso: mayo-2011
Ubicación: Lima
Mensajes: 89
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: Tecla TAB en mozilla

Saludos zerokilled modifique el codigo y quedo asi..
Código HTML:
Ver original
  1. function controltag(e) {
  2.         tecla = e.which || e.keyCode;
  3.         if (tecla==8) return true; // para la tecla de retroseso
  4.         else if (tecla==e.keyCode||tecla==e.which)  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.     }
y los input quedan asi
Código HTML:
Ver original
  1. onkeypress="return solo_numeros(event) && return controltag(event);"
Lo del tab funciona pero la funcion solo numeros ya no porfavor ayudame, que es lo que hago mal de lo agradeceria que un experto como tu en el tema me lo pueda decir.. Gracias...
  #6 (permalink)  
Antiguo 15/06/2011, 13:33
 
Fecha de Ingreso: mayo-2011
Ubicación: Lima
Mensajes: 89
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: Tecla TAB en mozilla

Tambien lo intente asi pero igual solo me coge uno:
Código HTML:
Ver original
  1. onkeypress="return solo_numeros(event) && controltag(event);"
  #7 (permalink)  
Antiguo 15/06/2011, 16:36
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Tecla TAB en mozilla

me equivoque en el operador, cambia el AND por OR.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Etiquetas: mozilla, 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




La zona horaria es GMT -6. Ahora son las 13:42.