Foros del Web » Programando para Internet » Javascript »

detectar backspace en onkeypress

Estas en el tema de detectar backspace en onkeypress en el foro de Javascript en Foros del Web. Buenos días, me interesaría saber cuando un usuario presiona la tecla "borrar" "backspace" encima un cuadro de texto (<input type='text'>); Utilizando esto: <input type='text' name='algo' ...
  #1 (permalink)  
Antiguo 27/08/2008, 02:18
 
Fecha de Ingreso: septiembre-2005
Mensajes: 522
Antigüedad: 18 años, 8 meses
Puntos: 0
Pregunta detectar backspace en onkeypress

Buenos días, me interesaría saber cuando un usuario presiona la tecla "borrar" "backspace" encima un cuadro de texto (<input type='text'>);

Utilizando esto:
<input type='text' name='algo' onpresskey='funcion(event)'>

me devuelve todos los caracteres que se presionan del teclado excepto el "borrar", hay alguna otra función o algun otra cosa?
Gracias

Última edición por xinxan22; 27/08/2008 a las 02:19 Razón: onkeypress -> onpresskey
  #2 (permalink)  
Antiguo 27/08/2008, 05:04
 
Fecha de Ingreso: septiembre-2005
Mensajes: 522
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: detectar backspace en onkeypress

Encontre la respuesta a mis dudas pero me ha surgido otra. Primero, la solucion de lo anterior es con el keypressdown. Segundo, la nueva duda es como puedo solucionar lo siguiente:

********MI CODIGO HTML
<form name="miform">
<input type="text" name="mitext" onkeydown="mifuncion(event)">
</form>
********MI CODIGO JAVASCRIPT
function mifuncion(key_event){
bb=document.forms.miform.mitext.value;
alert(bb);
}

Necesito que cuando escriba una letra en el "input" el "alert" me muestre el valor que hay en el input. Pero tengo un problema con esto y es que cuando escribo la primera letra, por ejemplo, el valor del input me da vacío.

ejemplo:
tengo esto:
- input: "vacio"
- escribo: "a"
- bb: "vacio"
- input: "a"
(primero lee el input, segundo lee la letra)

necesito esto:
- input: "vacio"
- escribo: "a"
- bb: "a"
- input: "a"
(primero lee la letra, segundo lee el input)
  #3 (permalink)  
Antiguo 27/08/2008, 10:21
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: detectar backspace en onkeypress

Para eso puedes obtener el código de tecla y agregarlo al value actual del input, el código de tecla obtienes con keyCode (IE) y which (Firefox, otros).
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #4 (permalink)  
Antiguo 27/08/2008, 10:22
 
Fecha de Ingreso: septiembre-2005
Mensajes: 522
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: detectar backspace en onkeypress

Y mas o menos como seria el script ?
  #5 (permalink)  
Antiguo 27/08/2008, 10:33
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: detectar backspace en onkeypress

Mira este ejemplo:
Código PHP:
<html>
<
head>
<
script language="javascript">
function 
detectkey(evt,obj) {
keycode = (evt.keyCode==0) ? evt.which evt.keyCode;
alert(obj.value String.fromCharCode(keycode));
}
</script>
</head>
<body>
<input type="text" onkeypress="detectkey(event,this)" />
</body>
</html> 
Lo que hacemos es obtener el código de tecla y convertirla a carácter, luego ese carácter añadimos al value del input.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #6 (permalink)  
Antiguo 28/08/2008, 01:22
 
Fecha de Ingreso: septiembre-2005
Mensajes: 522
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: detectar backspace en onkeypress

Muchas gracias, es lo que quereía. También me han aconsejado utilizar el onkeyup.
Puedes explicarme esta línea: "keycode = (evt.keyCode==0) ? evt.which : evt.keyCode;" ?
No entiendo como con esto "obj.value " si te funciona pero con el "document.forms.miform.mitext.value;" no me funcionaba ya que inicialmente lo que hacía era esto:
"
..
letra=String.fromCharCode(event.keycode);
bb=document.forms.miform.mitext.value;
resultado=bb+letra;
...
"
Pero claro no quería sumarle la nueva letra sino simplemente coger el valor del input.
Gracias.
  #7 (permalink)  
Antiguo 28/08/2008, 06:59
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
De acuerdo Respuesta: detectar backspace en onkeypress

En ese caso solo debe ser:
Código PHP:
bb miform.mitext.value
Esta línea:
Código PHP:
keycode = (evt.keyCode==0) ? evt.which evt.keyCode
Permite que la captura funcione tanto en IE (evt.keyCode) como en otros navegadores Mozilla, Netscape, etc. (evt.which).
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
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:08.