Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] insertar texto en textarea en una posición concreta (no mouse)

Estas en el tema de insertar texto en textarea en una posición concreta (no mouse) en el foro de Javascript en Foros del Web. Hola Necesito añadir texto de un input a un textarea, he visto algunos post pero hablan de añadir en la posición del cursor. Yo lo ...
  #1 (permalink)  
Antiguo 04/09/2013, 10:01
 
Fecha de Ingreso: abril-2010
Mensajes: 78
Antigüedad: 14 años
Puntos: 0
insertar texto en textarea en una posición concreta (no mouse)

Hola

Necesito añadir texto de un input a un textarea, he visto algunos post pero hablan de añadir en la posición del cursor. Yo lo que pretendo es que se añada aquí:

Código:
<B><Titulo</A>
<A HREF="http://.......">1</A>
<A HREF="http://.......">1</A>
<A HREF="http://.......">1</A>
<A HREF="http://.......">1</A>
<<<<<<<< AQUÍ >>>>>>>>

bla bla bla bla ............
Todos los codigos van a tener 4 enlaces, quiero desde un input escribir otro y añadirlo después del cuarto input, ojó! después hay más cosas

Espero haberme hecho entender

Muchas gracias de antemano

Un saludo
  #2 (permalink)  
Antiguo 04/09/2013, 11:06
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: insertar texto en textarea en una posición concreta (no mouse)

obtén el texto del textarea, parte el texto entre "</a>", obtendrás un arreglo, pasa este arreglo a otro, pero en la cuarta o la posición que quieras, añade lo que requieres.

Código Javascript:
Ver original
  1. var texto=document.getElementById('mitextarea').value;//obtenemos texto
  2.  
  3. texto=texto.split('</a>');//partimos
  4.  
  5. var temp=[];
  6. var y=0;
  7. for(var x=0;x<texto.length;x++)
  8.     temp[y]=texto[x];//copiamos el contenido de texto a temp
  9.     if(x==3){//al llegar a la posición requerida
  10.         y++;
  11.         temp[y]='hola mundo';//agregamos algo
  12.     }
  13.     y++;
  14. }
  15. texto=temp.join('</a>');//unimos la cadena
  #3 (permalink)  
Antiguo 11/09/2013, 04:27
 
Fecha de Ingreso: abril-2010
Mensajes: 78
Antigüedad: 14 años
Puntos: 0
Respuesta: insertar texto en textarea en una posición concreta (no mouse)

Hola ocp001a

Gracias por contestar, llevo unos días estancado, por más que pruebo no me sale

Creo que no me obtiene el texto porque si despues del getElementById hago un alert('$texto');

El alert aparece vacío.

Mi textarea está así:
Código:
<textarea name='descr' id='descr' rows='10' cols='80'>


<A HREF='http://.......''>1</A>
<A HREF='http://.......''>2</A>
<A HREF='http://.......''>3</A>


      </textarea>
y lo que me has puesto le he puesto la id:
Código:
var texto=document.getElementById('descr').value;//obtenemos texto
Que estoy haciendo mal?
  #4 (permalink)  
Antiguo 12/09/2013, 15:27
 
Fecha de Ingreso: abril-2010
Mensajes: 78
Antigüedad: 14 años
Puntos: 0
Respuesta: insertar texto en textarea en una posición concreta (no mouse)

Después de mucho trastear, encontré la solución

Os dejo mi código, quizás a alguien le sirva alguna día

Código Javascript:
Ver original
  1. <script type='text/javascript' language='JavaScript'>
  2.  
  3. var lol=4 //número de '</A>' que tengo, en el primer post tenia 3 pero añadí otro más, de ahí que ponga 4 en lugar de 3
  4.  
  5. function oneMore(){
  6.     var texto=document.getElementById('descr').value;
  7.       texto=texto.split('</A>');
  8.       var temp=[];
  9.       var y=0;
  10.       for(var x=0;x<texto.length;x++){
  11.           temp[y]=texto[x];
  12.           if(x==lol){
  13.             if(texto[x-1]+'</A>'!='<A>'+document.form.title.value+'</A>'){ //esto evita que se añadan repetidos
  14.               temp[y]='<A>'+document.form.title.value+'</A>';
  15.               lol++;
  16.             }
  17.           }
  18.           y++;
  19.       }
  20.       texto=temp.join('</A>');
  21.  
  22.       document.getElementById('descr').value=texto;
  23. }
  24.  
  25. </script>


Mil gracias a ocp001a

Última edición por j4v1; 12/09/2013 a las 15:34

Etiquetas: input, textarea
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 12:52.