Foros del Web » Programando para Internet » Javascript »

[Duda] Permitir TAB en un "input"

Estas en el tema de [Duda] Permitir TAB en un "input" en el foro de Javascript en Foros del Web. Tengo este código que se supone que limita que tipo de teclas se pueden precionar en un input, sin embargo, si bien limita que no ...
  #1 (permalink)  
Antiguo 22/06/2009, 17:54
 
Fecha de Ingreso: abril-2003
Mensajes: 1.129
Antigüedad: 21 años, 1 mes
Puntos: 34
[Duda] Permitir TAB en un "input"

Tengo este código que se supone que limita que tipo de teclas se pueden precionar en un input, sin embargo, si bien limita que no se ingresen caracteres raros y otras cosas... No logro que permita el presionar TAB

Código HTML:
function validar(e) {
    tecla = (document.all) ? e.keyCode : e.which;
    if (tecla==8) return true;
    if (tecla==95) return true;
    if (tecla==9) return true;
    if (tecla==37) return true;
    if (tecla==38) return true;
    if (tecla==39) return true;
    if (tecla==40) return true;
    if (tecla==127) return true;
	patron =/[A-Za-z\d\s]/;
    te = String.fromCharCode(tecla);
    return patron.test(te);
}
En el input lo llamo así...

Código HTML:
<input type="text" onkeypress="return validar(event)" name="F1" size="30" maxlength="20" tabindex="1" value=""> 
De todos esos if sólo me reconoce el 8 que habilita el Backspace
__________________
elGastronomo
  #2 (permalink)  
Antiguo 22/06/2009, 18:39
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: [Duda] Permitir TAB en un "input"

la verdad no me hace sentido. por que realizas la validacion a traves del keycode si con expresiones regulares es mas que suficiente? en la unica circunstancia que veo util el keycode es para detectar ciertas teclas que no representan ningun caracter, como las teclas HOME, END, PAGE UP, PAGE DOWN, INSERT, DELETE, ENTER, SHIFT, ESCAPE, TAB, CTRL, ALT, DOWN, UP, LEFT, RIGHT.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 22/06/2009, 19:11
 
Fecha de Ingreso: abril-2003
Mensajes: 1.129
Antigüedad: 21 años, 1 mes
Puntos: 34
Respuesta: [Duda] Permitir TAB en un "input"

¿Y cómo debería hacerlo?

La verdad que en este tema no se mucho, este código creo que lo pedí hace mucho en este Foro o lo levante de algún post existente, no recuerdo...
__________________
elGastronomo
  #4 (permalink)  
Antiguo 22/06/2009, 19:44
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: [Duda] Permitir TAB en un "input"

hay distintas formas de hacerlo. por ejemplo, puedes limpiar el campo cuando este pierde el foco:
Código:
<script type="text/javascript">
function validar(input){
patron =/[^a-z0-9\x20]/ig;
input.value = input.value.replace(patron, "");
}
</script>
<input type="text" id="hola" onblur="validar(this);" />
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 23/06/2009, 16:04
 
Fecha de Ingreso: abril-2003
Mensajes: 1.129
Antigüedad: 21 años, 1 mes
Puntos: 34
Respuesta: [Duda] Permitir TAB en un "input"

Cita:
Iniciado por zerokilled Ver Mensaje
hay distintas formas de hacerlo. por ejemplo, puedes limpiar el campo cuando este pierde el foco:
Código:
<script type="text/javascript">
function validar(input){
patron =/[^a-z0-9\x20]/ig;
input.value = input.value.replace(patron, "");
}
</script>
<input type="text" id="hola" onblur="validar(this);" />
Al parecer no hace exactamente lo que yo necesito, porque por ejemplo, si bien permite que se presione el TAB, también está permitiendo que se ingresen caracteres como "·$%& letras con acentos, etc

Y solo los elimina al salir del input...

si uno ingresa "árbol" al presionar TAB y pasar al siguiente input el input cambia a rbol

Le saca la á y los "

Yo necesito que ni se puedan escribir, para que el usuario no se confunda...
__________________
elGastronomo
  #6 (permalink)  
Antiguo 23/06/2009, 18:34
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: [Duda] Permitir TAB en un "input"

el codigo que antes expuse era un ejemplo. en mi ejemplo, el codigo remueve todo lo que no sea caracteres alfanumericos y espacio. en tu caso tienes que definir la expresion regular de acuerdo a lo que tu consideras caracteres validos o no validos. y lo mas seguro tambien queras utilizar otro evento en lugar de onblur, como onkeyup.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 24/06/2009 a las 15:31
  #7 (permalink)  
Antiguo 24/06/2009, 14:20
 
Fecha de Ingreso: abril-2003
Mensajes: 1.129
Antigüedad: 21 años, 1 mes
Puntos: 34
Respuesta: [Duda] Permitir TAB en un "input"

Cita:
Iniciado por zerokilled Ver Mensaje
el codigo que antes expuse era un ejemplo. en mi ejemplo, el codigo remueve todo lo que [b]no sea[/u] caracteres alfanumericos y espacio. en tu caso tienes que definir la expresion regular de acuerdo a lo que tu consideras caracteres validos o no validos. y lo mas seguro tambien queras utilizar otro evento en lugar de onblur, como onkeyup.
Ahhh oko oko...

Ahora redefiniré las teclas que deseo permitir entonces, muchas gracias...
__________________
elGastronomo
  #8 (permalink)  
Antiguo 22/03/2011, 13:49
 
Fecha de Ingreso: noviembre-2007
Mensajes: 3
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: [Duda] Permitir TAB en un "input"

Para permitir el tab agrega un "\x00" y listo
  #9 (permalink)  
Antiguo 22/03/2011, 14:18
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: [Duda] Permitir TAB en un "input"

buenas @eduardo,
antes de participar, revise la fecha del ultimo mensaje publicado en el tema. o mas importante aun, al final del tema aparecera un aviso en color rojo en caso de ser un tema antiguo. siga las instrucciones indicadas. por otro lado, revise su respuesta, no es la solucion correcta.

__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
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:37.