Foros del Web » Programando para Internet » Javascript »

Problema al validar caracteres (TAB)

Estas en el tema de Problema al validar caracteres (TAB) en el foro de Javascript en Foros del Web. Programe la siguiente función para poder ingresar numeros, puntos, poder borrar con BACKSPACE lo cual funciona perfecto, pero no puedo cambiar de campo usando el ...
  #1 (permalink)  
Antiguo 19/07/2007, 12:17
Avatar de Highlander  
Fecha de Ingreso: junio-2006
Ubicación: Concepción, Chile
Mensajes: 475
Antigüedad: 17 años, 10 meses
Puntos: 4
Problema al validar caracteres (TAB)

Programe la siguiente función para poder ingresar numeros, puntos, poder borrar con BACKSPACE lo cual funciona perfecto, pero no puedo cambiar de campo usando el TAB, siendo que segun la tabla acsii es la tecla 9.

Ojala alguien me pueda ayudar, saludos y gracias.

Tabla de acsii http://www.asciitable.com/

Código:
function EvaluateText(cadena, obj, e){
opc = false;
tecla = (document.all) ? e.keyCode : e.which;
if (cadena == "%f")
{	if (tecla == 9)
	opc = true;
	if (tecla > 45 && tecla < 58)
	opc = true;
	if (tecla == 8)
	opc = true;
	if (tecla == 47)
	opc = false;
	
}
return opc;
}
  #2 (permalink)  
Antiguo 19/07/2007, 12:29
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: Problema al validar caracteres (TAB)

Hola Highlander

Me imagino que está usando el evento onkeypress (que para el tabulador, y otras teclas, devuelve cero), prueba con el evento onkeydown

Saludos,
  #3 (permalink)  
Antiguo 19/07/2007, 12:37
Avatar de Highlander  
Fecha de Ingreso: junio-2006
Ubicación: Concepción, Chile
Mensajes: 475
Antigüedad: 17 años, 10 meses
Puntos: 4
Re: Problema al validar caracteres (TAB)

Excelente funciono a la primera, muchas gracias.
  #4 (permalink)  
Antiguo 19/07/2007, 12:48
Avatar de Highlander  
Fecha de Ingreso: junio-2006
Ubicación: Concepción, Chile
Mensajes: 475
Antigüedad: 17 años, 10 meses
Puntos: 4
Re: Problema al validar caracteres (TAB)

Doh lo estuve revisando mas y me di cuenta que con onkeydown no me funciona correctamente la validación, no me deja ingresar puntos, me permite ingresar caracters extraños usando shift + numero.

La verdad no se pq con onkeypress si valida bien pero no funciona el TAB, en cambio onkeydown valida mal pero funciona el TAB.
  #5 (permalink)  
Antiguo 20/07/2007, 14:44
Avatar de Forze  
Fecha de Ingreso: diciembre-2004
Mensajes: 13
Antigüedad: 19 años, 4 meses
Puntos: 0
Re: Problema al validar caracteres (TAB)

Hola, prueba con esta función Javascript:

Código HTML:
function validar(e) {
    tecla = (document.all) ? e.keyCode : e.which;
    if (tecla == 8 || tecla == 0) return true;
    patron = /(^[0-9.]$)/;
    te = String.fromCharCode(tecla);
    return patron.test(te);
}
y en el input coloca

Código:
onkeypress="return validar(event)"
  #6 (permalink)  
Antiguo 21/07/2007, 14:26
Avatar de Highlander  
Fecha de Ingreso: junio-2006
Ubicación: Concepción, Chile
Mensajes: 475
Antigüedad: 17 años, 10 meses
Puntos: 4
Re: Problema al validar caracteres (TAB)

Excelente con el codigo de Forze, permite solo numeros, puntos, backspace y tab.

Gracias realmente me ayudo.

Tienes algun url o algo donde explique esto: patron = /(^[0-9.]$)/;

Saludos
  #7 (permalink)  
Antiguo 22/07/2007, 11:59
Avatar de Forze  
Fecha de Ingreso: diciembre-2004
Mensajes: 13
Antigüedad: 19 años, 4 meses
Puntos: 0
Re: Problema al validar caracteres (TAB)

De nada, revisa este enlace de validación con expresiones regulares.


Saludos.
  #8 (permalink)  
Antiguo 17/05/2012, 15:54
 
Fecha de Ingreso: agosto-2009
Mensajes: 3
Antigüedad: 14 años, 8 meses
Puntos: 0
De acuerdo Respuesta: Re: Problema al validar caracteres (TAB)

jajajaja

gracias maestro, no sabes cuánto he buscado solucionar este problema.

Con esto no solo funciona la tecla TAB, sino también SUPR, flechas de desplazamiento, excelente.

Pero me pudes explicar lo que hace el if (tecla==8 || tecla==0) return true


Por qué tecla==0 ?
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:41.