Foros del Web » Programando para Internet » Javascript »

Insertar texto en medio de un textarea

Estas en el tema de Insertar texto en medio de un textarea en el foro de Javascript en Foros del Web. Hola amigos de Foros del web, los consulto porque estoy armando un sitio. En él tengo una página con un formulario que contiene un textarea. ...
  #1 (permalink)  
Antiguo 31/08/2011, 13:22
 
Fecha de Ingreso: marzo-2003
Ubicación: Chivilcoy
Mensajes: 142
Antigüedad: 21 años, 8 meses
Puntos: 0
Insertar texto en medio de un textarea

Hola amigos de Foros del web, los consulto porque estoy armando un sitio. En él tengo una página con un formulario que contiene un textarea.
He puesto unos botones con JScript para insertar etiquetas HTML en el texto del text area, pero el problema es que siempre me ponen las etiquetas al final del texto y no donde está posicionado el cursor.
Hay alguna manera de que el script escriba donde tengo el cursor y no al final?
Gracias por anticipado
saludos
__________________
Leandro Mandarano
Cyper Developments
http://www.cyper.com.ar
  #2 (permalink)  
Antiguo 31/08/2011, 16:01
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: Insertar texto en medio de un textarea

Código Javascript:
Ver original
  1. function insertAtCaret(areaId,text) {
  2.     var txtarea = document.getElementById(areaId);
  3.     var scrollPos = txtarea.scrollTop;
  4.     var strPos = 0;
  5.     var br = ((txtarea.selectionStart || txtarea.selectionStart == '0') ?
  6.         "ff" : (document.selection ? "ie" : false ) );
  7.     if (br == "ie") {
  8.         txtarea.focus();
  9.         var range = document.selection.createRange();
  10.         range.moveStart ('character', -txtarea.value.length);
  11.         strPos = range.text.length;
  12.     }
  13.     else if (br == "ff") strPos = txtarea.selectionStart;
  14.    
  15.     var front = (txtarea.value).substring(0,strPos);  
  16.     var back = (txtarea.value).substring(strPos,txtarea.value.length);
  17.     txtarea.value=front+text+back;
  18.     strPos = strPos + text.length;
  19.     if (br == "ie") {
  20.         txtarea.focus();
  21.         var range = document.selection.createRange();
  22.         range.moveStart ('character', -txtarea.value.length);
  23.         range.moveStart ('character', strPos);
  24.         range.moveEnd ('character', 0);
  25.         range.select();
  26.     }
  27.     else if (br == "ff") {
  28.         txtarea.selectionStart = strPos;
  29.         txtarea.selectionEnd = strPos;
  30.         txtarea.focus();
  31.     }
  32.     txtarea.scrollTop = scrollPos;
  33. }

Con esta función lo puedes hacer, sólo debes pasar el id del textarea y el texto a introducir
  #3 (permalink)  
Antiguo 31/08/2011, 17:15
 
Fecha de Ingreso: marzo-2003
Ubicación: Chivilcoy
Mensajes: 142
Antigüedad: 21 años, 8 meses
Puntos: 0
Respuesta: Insertar texto en medio de un textarea

Gracias ocp001a!
Es justo lo que necesitaba
Saludos
__________________
Leandro Mandarano
Cyper Developments
http://www.cyper.com.ar

Etiquetas: html, js, medio, textarea, formulario, botones
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:46.