Foros del Web » Programando para Internet » Javascript »

¿Cómo agregar texto después de una posición en un textarea?

Estas en el tema de ¿Cómo agregar texto después de una posición en un textarea? en el foro de Javascript en Foros del Web. Buenas, quizá el título no haya despejado muchas dudas Me explico. Estoy haciendo un script en jQuery para agregar código bbcode al pinchar en una ...
  #1 (permalink)  
Antiguo 17/08/2014, 15:31
 
Fecha de Ingreso: agosto-2014
Mensajes: 2
Antigüedad: 9 años, 8 meses
Puntos: 0
¿Cómo agregar texto después de una posición en un textarea?

Buenas, quizá el título no haya despejado muchas dudas

Me explico.
Estoy haciendo un script en jQuery para agregar código bbcode al pinchar en una imagen (estoy haciendo un fieldset de iconos para la respuesta rápida de mi foro)
El problema está, en que la función que tenía estaba bien, pero SIEMPRE agregaba el texto al final del textarea.
Lo que yo quiero hacer, es que el script coja la posición en la que he pinchado dentro del textarea (esto ya lo he hecho con [URL="http://stackoverflow.com/questions/1891444/cursor-position-in-a-textarea-character-index-not-x-y-coordinates"]esta función[/URL])

Aquí viene donde me he quedado estancado. $('textarea').getCursorPosition(); me devuelve la última posición sobre la que pinché, pero no sé insertar el texto después de esta posición.

Seguramente sea muy sencillo, pero estoy atascado y no encuentro la solución a esto.

A ver si alguien me puede ayudar :)
Gracias de antemano.
  #2 (permalink)  
Antiguo 17/08/2014, 23:54
 
Fecha de Ingreso: julio-2006
Ubicación: Barcelona
Mensajes: 244
Antigüedad: 17 años, 9 meses
Puntos: 32
Respuesta: ¿Cómo agregar texto después de una posición en un textarea?

En jquery necesitarás el método $.fn.text para obtener el texto del textarea y para luego añadirlo modificado. Así que tu problema se reduce a, dado un texto inicial, un texto a incorporar y una posición donde incorporarlo, conseguir un texto resultante. Con el método String.prototype.substring puedes hacerlo:

http://jsfiddle.net/p3dy0787/1/

Un saludo!
__________________
github.com/xgbuils | npm/xgbuils
  #3 (permalink)  
Antiguo 18/08/2014, 06:41
 
Fecha de Ingreso: agosto-2014
Mensajes: 2
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: ¿Cómo agregar texto después de una posición en un textarea?

Cita:
Iniciado por Pantaláimon Ver Mensaje
En jquery necesitarás el método $.fn.text para obtener el texto del textarea y para luego añadirlo modificado. Así que tu problema se reduce a, dado un texto inicial, un texto a incorporar y una posición donde incorporarlo, conseguir un texto resultante. Con el método String.prototype.substring puedes hacerlo:

[url]http://jsfiddle.net/p3dy0787/1/[/url]

Un saludo!
Oh, muchas gracias, no era examente como en el link, porque por ejemplo con $('textarea').text() no me funcionaba y he tenido que modificarlo a como lo tenía antes que era $('textarea').val();

Muchas gracias, compañero. Lo único, antes de agradecértelo totalmente, a ver si me puedes explicar exactamente qué hace esta línea, porque me lo imagino pero me gustaría saberlo al 100%

Código PHP:
texto texto.substring(0,pos) + incorporacion texto.substring(pos); 
  #4 (permalink)  
Antiguo 18/08/2014, 10:40
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: ¿Cómo agregar texto después de una posición en un textarea?

Inserta el valor de incorporacion entre el extracto de la cadena que comprende desde el inicio hasta la posición ubicada (en donde se separará) y esta última. Por ejemplo, si tuvieras la palabra 'Mesopotamia', el texto a insertar fuera 'foo' y lo quisieras insertar antes de la letra 'p' (posición 4 en la cadena), las partes a concatenar se representarían así:

Código Javascript:
Ver original
  1. texto.substring(0,pos) = "Meso";
  2. incorporacion = "foo";
  3. texto.substring(pos) = "potamia";

Y el resultado de concatenar todo sería 'Mesofoopotamia'.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 18/08/2014, 10:53
 
Fecha de Ingreso: julio-2006
Ubicación: Barcelona
Mensajes: 244
Antigüedad: 17 años, 9 meses
Puntos: 32
Respuesta: ¿Cómo agregar texto después de una posición en un textarea?

Cierto, para textarea y inputs, mejor usar val.

¿Que es lo que no entiendes? Siempre puedes buscar info sobre String.prototype.substring

Y aquí unos cuantos ejemplos

Código Javascript:
Ver original
  1. "califragilistico".substring(0,3);
  2. "califragilistico".substring(9,16);
  3. "califragilistico".substring(9);
  4. "califragilistico".substring(9,15) ;
  5. "califragilistico".substring(4,10);

Abre la consola de Chrome (Ctrl+shift+J) y pega las lineas una por una en la consola. A ver que te devuelve para cada caso.

Un saludo!
__________________
github.com/xgbuils | npm/xgbuils

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 18:48.