Foros del Web » Programando para Internet » Javascript »

alguien sabe que pasa con esto

Estas en el tema de alguien sabe que pasa con esto en el foro de Javascript en Foros del Web. Buenas tengo esta pagina http://catrachoexpress.com/inputmask.htm , es un formato de fecha,numero,telefono pero cuando quiero retroceder con bakcspace o alguna otra tecla, esta no pasa despues ...
  #1 (permalink)  
Antiguo 13/07/2011, 14:28
 
Fecha de Ingreso: mayo-2008
Mensajes: 353
Antigüedad: 16 años
Puntos: 3
alguien sabe que pasa con esto

Buenas tengo esta pagina http://catrachoexpress.com/inputmask.htm, es un formato de fecha,numero,telefono pero cuando quiero retroceder con bakcspace o alguna otra tecla, esta no pasa despues del caracter especial, se queda alli.
En verdad he visto el codigo y no se que esta pasando, dentro de la pagina pueden ver el codigo
gracias men
  #2 (permalink)  
Antiguo 14/07/2011, 02:08
Avatar de ceSharp  
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 495
Antigüedad: 15 años, 6 meses
Puntos: 66
Respuesta: alguien sabe que pasa con esto

hola,

lo que pasa es que tu función cada vez que hay tres caracteres añade un guión (en el caso del primer textbox). cuando borras el guión detecta que hay tres caracteres, y vuelve a poner un guión, y así hasta el infinito. puedes añadir que vigile el evento de tecla, y si es retroceso, o flecha izquierda o suprimir que no haga nada.
pero aún así te vas a volver un poco loco, si tratas de perfeccionarla al máximo. porque, por ejemplo, si con el ratón pinchas entre el primer y el segundo caracter, eso no lo rescata tu función, y no es un evento de teclado. pero bueno si quieres seguir adelante, te paso un apaño a tu función, para que, al menos, detecte la tecla de retroceso y borre el guión en cualquier caso:
----------------------------
function mask(str,textbox,loc,delim)
{
var tecla;
tecla = (document.all) ? event.keyCode : event.which;
if(tecla != 8)
{
var locs = loc.split(',');
for (var i = 0; i <= locs.length; i++)
{
for (var k = 0; k <= str.length; k++)
{
if (k == locs[i])
{
if (str.substring(k, k+1) != delim)
{
str = str.substring(0,k) + delim + str.substring(k,str.length);
}
}
}
}
textbox.value = str
}
}
-------------------------
con esto puedes preguntar si la tecla es retroceso, flecha izquierda, suprimir o lo que sea, y evitarás que haga lo que ahora está haciendo. pero ya te digo que el usar el ratón no lo detecta el evento de teclado.
si quieres un consejo, es más fácil usar el evento onblur del textbox, y formatear el texto al salir del campo. además le puedes añadir con expresiones regulares que evite teclear guiones o lo que quieras.

saludos.
  #3 (permalink)  
Antiguo 14/07/2011, 06:01
 
Fecha de Ingreso: mayo-2008
Mensajes: 353
Antigüedad: 16 años
Puntos: 3
Respuesta: alguien sabe que pasa con esto

Muchas gracias man, esto era lo que buscaba, 1000 puntos.

Etiquetas: Ninguno
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 01:09.