Foros del Web » Programando para Internet » Javascript »

Recoger valor TextArea al pegar (Ctrl + V)

Estas en el tema de Recoger valor TextArea al pegar (Ctrl + V) en el foro de Javascript en Foros del Web. Hola! Tengo un pequeño problema. Tengo un textarea en el que en el evento OnKeyDown detecto si el usuario ha pegado algo "combinación Ctrl+V". Después ...
  #1 (permalink)  
Antiguo 21/12/2009, 14:34
 
Fecha de Ingreso: marzo-2008
Mensajes: 383
Antigüedad: 16 años, 1 mes
Puntos: 5
Exclamación Recoger valor TextArea al pegar (Ctrl + V)

Hola! Tengo un pequeño problema. Tengo un textarea en el que en el evento OnKeyDown detecto si el usuario ha pegado algo "combinación Ctrl+V". Después de estar pegado horas en el monitor conseguí que funcionase:

Código Javascript:
Ver original
  1. function agrandar(e){
  2.    var code = (document.all) ? event.keyCode:e.which;
  3.    var ctrl = (document.all) ? event.ctrlKey:e.modifiers & Event.CONTROL_MASK;
  4.     if (window.event.ctrlKey){
  5.         if (window.event.keyCode == 86) {
  6.             alert("Has pulsado ctrl+v");
  7.         }
  8.     }
  9. }
Código HTML:
Ver original
  1. <textarea  cols="85" rows="1" Id="TAestado" onkeydown="agrandar(event)"  ></textarea>

Lo que ahora quiero conseguir es que cuando haya pulsado ctrl +v me recoja el valor del textarea y me lo guarde en una variable:

Código Javascript:
Ver original
  1. function agrandar(e){
  2.    var code = (document.all) ? event.keyCode:e.which;
  3.    var ctrl = (document.all) ? event.ctrlKey:e.modifiers & Event.CONTROL_MASK;
  4.     if (window.event.ctrlKey){
  5.         if (window.event.keyCode == 86) {
  6.             var msg = document.forms['formulario'].TAestado.value;
  7.         }
  8.     }
  9. }

Peeero, no funciona porque antes de que se muestre el valor del TextArea se está ejecutando este javascript, por lo que el valor del textarea siempre será = null

Cómo puedo conseguir que me recoja el valor?
P.D.: tiene que ser el evento onKeyDown.

Saludos y gracias de antemano
  #2 (permalink)  
Antiguo 21/12/2009, 16:34
 
Fecha de Ingreso: diciembre-2009
Mensajes: 438
Antigüedad: 14 años, 4 meses
Puntos: 16
Respuesta: Recoger valor TextArea al pegar (Ctrl + V)

¿Has probado controlar solo la parte de recoger el valor con el evento onchange del textarea?
  #3 (permalink)  
Antiguo 22/12/2009, 08:08
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: Recoger valor TextArea al pegar (Ctrl + V)

Sino, setTimeout:

Código Javascript:
Ver original
  1. function agrandar(e){ setTimeout("agrandar2(e)",200); }
  2.  
  3.       function agrandar2(e){
  4.  
  5.          var code = (document.all) ? event.keyCode:e.which;
  6.  
  7.          var ctrl = (document.all) ? event.ctrlKey:e.modifiers & Event.CONTROL_MASK;
  8.  
  9.           if (window.event.ctrlKey){
  10.  
  11.               if (window.event.keyCode == 86) {
  12.  
  13.                   var msg = document.forms['formulario'].TAestado.value;
  14.  
  15.               }
  16.  
  17.           }
  18.  
  19.       }
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #4 (permalink)  
Antiguo 23/12/2009, 16:40
 
Fecha de Ingreso: marzo-2008
Mensajes: 383
Antigüedad: 16 años, 1 mes
Puntos: 5
Respuesta: Recoger valor TextArea al pegar (Ctrl + V)

el evento onChange no funciona bien, el código de dentro de este metodo se ejecuta cuando se va el foco del textarea... y tiene que ejecutarse nada más haber hecho un Ctrl + v, estando dentro del textarea.

Y el setTimeOut, pasa lo mismo que no haciendolo. Inicialmente ve el textarea como = null.


Un ejemplo donde podemos ver lo que quiero conseguir es en la página de facebook. cuando en el textarea de "en que estoy pensando" se pega la Url, la capta al momento
  #5 (permalink)  
Antiguo 23/12/2009, 17:06
 
Fecha de Ingreso: marzo-2008
Mensajes: 383
Antigüedad: 16 años, 1 mes
Puntos: 5
Respuesta: Recoger valor TextArea al pegar (Ctrl + V)

Ya lo tengo:

Código HTML:
Ver original
  1. <textarea  cols="85" rows="1" Id="TAestado" onkeydown="agrandar(event)" onkeyup="pegado()"  ></textarea>

Código Javascript:
Ver original
  1. var pegar;
  2.  
  3. function agrandar(e){
  4.    var code = (document.all) ? event.keyCode:e.which;
  5.    var ctrl = (document.all) ? event.ctrlKey:e.modifiers & Event.CONTROL_MASK;
  6.     if (window.event.ctrlKey){
  7.         if (window.event.keyCode == 86) {
  8.             pegar = 1;
  9.         }
  10.     }
  11. }
  12.  
  13. function pegado(){
  14.        
  15. if (pegar==1){
  16.     alert(document.forms['formulario'].TAestado.value);
  17.     pegar=0;
  18. }
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 12:18.