Foros del Web » Programando para Internet » Javascript »

Evento onkeypress

Estas en el tema de Evento onkeypress en el foro de Javascript en Foros del Web. Hola: Mi problema es que llamo a una función javascript desde un campo texto con el evento onkeypress pasándole el parámetro 'this' y dentro de ...
  #1 (permalink)  
Antiguo 12/11/2009, 04:58
Avatar de frisca  
Fecha de Ingreso: mayo-2004
Ubicación: Murcia
Mensajes: 176
Antigüedad: 20 años, 6 meses
Puntos: 0
Evento onkeypress

Hola:

Mi problema es que llamo a una función javascript desde un campo texto con el evento onkeypress pasándole el parámetro 'this' y dentro de la función lo que hago es meter ese valor en un textarea que tengo justo debajo.

La cuestión es que me empieza a copiar el texto a partir de la segunda letra, como si lo primero que escribiese fuera un espacio en blanco. Esta claro que lo coge mal. Pero realmente no sé cómo podría ser algo instantáneo, que conforme escriba la letra en el capo texto aparezca en el textarea.

Gracias, un saludo
__________________
Que si contara el tiempo que paso mirando al techo pensando en ella...
  #2 (permalink)  
Antiguo 12/11/2009, 05:12
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 10 meses
Puntos: 126
Respuesta: Evento onkeypress

Hola

Déjanos ver tu código

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 12/11/2009, 05:17
Avatar de frisca  
Fecha de Ingreso: mayo-2004
Ubicación: Murcia
Mensajes: 176
Antigüedad: 20 años, 6 meses
Puntos: 0
De acuerdo Respuesta: Evento onkeypress

Código HTML:
<SCRIPT LANGUAGE='JavaScript'>

	function buscar(cadena)
	{
                document.miForm.resultado.value = cadena.value;
         }

</SCRIPT>

<FORM name='miForm' METHOD=POST ACTION=''>
 
<P>Introducir nombre a buscar <INPUT TYPE='TEXT' NAME='abuscar' onkeypress='buscar(this)' onfocus='oFoco=this'></P>
<textarea name='resultado' id='resultado' cols='45' rows='5'></textarea>

</FORM> 
Sería algo así resumidamente. Quiero que lo que escriba en el input se me muestre en el textarea a través de la función buscar(cadena).

Gracias
__________________
Que si contara el tiempo que paso mirando al techo pensando en ella...
  #4 (permalink)  
Antiguo 12/11/2009, 05:24
Avatar de ceSharp  
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 495
Antigüedad: 16 años
Puntos: 66
Respuesta: Evento onkeypress

hola frisca,

mira a ver si te vale esta
--------------------------
function buscar(e)
{
var tecla;
tecla = (document.all) ? e.keyCode : e.which;
if(tecla == 8)
{return true;}
var te;
te = String.fromCharCode(tecla);
document.getElementById('resultado').value += te;
}
-------------------------
es una variante de la que se usa para expresiones regulares. Conforme vas escribiendo en el input=text se va copiando en el textarea. Debes llamar a la función con buscar(event), no con buscar(this)

prueba y nos cuentas.

salu2
  #5 (permalink)  
Antiguo 12/11/2009, 05:30
Avatar de frisca  
Fecha de Ingreso: mayo-2004
Ubicación: Murcia
Mensajes: 176
Antigüedad: 20 años, 6 meses
Puntos: 0
Respuesta: Evento onkeypress

Muchas gracias, pero...

En el explorer funciona perfectamente, pero como imaginaba en firefox no. Tengo entendido que es por el 'event' que no funciona en este navegador.

¿Hay algún sustitutivo válido de event para firefox?
__________________
Que si contara el tiempo que paso mirando al techo pensando en ella...
  #6 (permalink)  
Antiguo 12/11/2009, 05:31
Avatar de ceSharp  
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 495
Antigüedad: 16 años
Puntos: 66
Respuesta: Evento onkeypress

Donde dije digo, digo Diego...
que manera de complicar las cosas, verdad? jejejejej
----------------------------------------------
function buscar()
{
document.getElementById('resultado').value = document.getElementById('abuscar').value;
}
------------------------------------------------
lo que tienes que hacer es usar el evento onkeyup="buscar()" , no onkeypress. y no hace falta pasar ningún parámetro

salu2
  #7 (permalink)  
Antiguo 12/11/2009, 05:38
Avatar de frisca  
Fecha de Ingreso: mayo-2004
Ubicación: Murcia
Mensajes: 176
Antigüedad: 20 años, 6 meses
Puntos: 0
Respuesta: Evento onkeypress

Pues sigue sin funcionarme en firefox Esa opción la había probado ya...
__________________
Que si contara el tiempo que paso mirando al techo pensando en ella...
  #8 (permalink)  
Antiguo 12/11/2009, 05:40
Avatar de frisca  
Fecha de Ingreso: mayo-2004
Ubicación: Murcia
Mensajes: 176
Antigüedad: 20 años, 6 meses
Puntos: 0
Respuesta: Evento onkeypress

Vale!! ya me funciona usando "document.miForm.abuscar.value" en lugar de con "document.getElementById('abuscar').value;"

Muchas gracias por todo, un saludo

__________________
Que si contara el tiempo que paso mirando al techo pensando en ella...
  #9 (permalink)  
Antiguo 12/11/2009, 06:08
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 10 meses
Puntos: 126
Respuesta: Evento onkeypress

Hola

Cita:
Iniciado por frisca Ver Mensaje
Vale!! ya me funciona usando "document.miForm.abuscar.value" en lugar de con "document.getElementById('abuscar').value;"
No te funciona con document.getElementById... por que el elemento no tiene id

<INPUT TYPE='TEXT' NAME='abuscar' onkeypress='buscar(this)' onfocus='oFoco=this'>

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #10 (permalink)  
Antiguo 12/11/2009, 06:54
Avatar de frisca  
Fecha de Ingreso: mayo-2004
Ubicación: Murcia
Mensajes: 176
Antigüedad: 20 años, 6 meses
Puntos: 0
Respuesta: Evento onkeypress

Jaarrrrlll, es verdad. Error de novato :(
__________________
Que si contara el tiempo que paso mirando al techo pensando en ella...
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 18:41.