Foros del Web » Programando para Internet » Javascript »

Colocar Foco en una parte del texto en especifico

Estas en el tema de Colocar Foco en una parte del texto en especifico en el foro de Javascript en Foros del Web. Hola, que funcion de javascript o el mismo jquery me permite colocar el foco o sea el cursor dentro de un textarea pero que este ...
  #1 (permalink)  
Antiguo 12/12/2012, 14:10
 
Fecha de Ingreso: septiembre-2011
Mensajes: 480
Antigüedad: 13 años, 3 meses
Puntos: 18
Colocar Foco en una parte del texto en especifico

Hola, que funcion de javascript o el mismo jquery me permite colocar el foco o sea el cursor dentro de un textarea pero que este se coloque en un espacio especifico del textarea o sea ejemplo, si tengo esto dentro de un textarea "Texto de ejemplo" y quisiera que el focus estuviera en la posicion numero 8, entonces que se situe alli, con que funcion se puede? porque la funcion Focus() lo unico que hace es colocar el cursor y ya!. Gracias a quien me pueda ayudar!
  #2 (permalink)  
Antiguo 12/12/2012, 14:15
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 8 meses
Puntos: 839
Respuesta: Colocar Foco en una parte del texto en especifico

Revisa esto:
http://www.disegnocentell.com.ar/notas2.php?id=206 (de Panino5001)

Saludos.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 12/12/2012, 14:30
 
Fecha de Ingreso: septiembre-2011
Mensajes: 480
Antigüedad: 13 años, 3 meses
Puntos: 18
Respuesta: Colocar Foco en una parte del texto en especifico

Compañero David Primero que todo gracias por responderme! y bueno esa parte ya la tengo ya que lo que yo deseo hacer es seleccionar un texto y reemplazar, ya todo eso lo hice pero lo unico que no he podido hacer es posicionar el cursor luego del texto que fue reemplazado, yo ya tengo la forma de saber en donde va a ir el cursor o sea en que posicion, lo unico que me falta es la funcion que coloque al cursor en esa posicion que yo obtengo :D
  #4 (permalink)  
Antiguo 12/12/2012, 14:32
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 8 meses
Puntos: 839
Respuesta: Colocar Foco en una parte del texto en especifico

Unos temas más abajo alguien preguntó algo parecido y le comenté de este tema:
http://www.forosdelweb.com/f13/posic...-input-507927/
Quizás te sirva también.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 12/12/2012, 14:40
 
Fecha de Ingreso: septiembre-2011
Mensajes: 480
Antigüedad: 13 años, 3 meses
Puntos: 18
Respuesta: Colocar Foco en una parte del texto en especifico

Perfecto, al parecer el tercer codigo me servira!...si tengo alguna duda de como implementarlo podria preguntarte verdad?, Feliz Navidad y prospero año nuevo 2013 :D
  #6 (permalink)  
Antiguo 12/12/2012, 14:53
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 8 meses
Puntos: 839
Respuesta: Colocar Foco en una parte del texto en especifico

Claro, puedes preguntar en este tema y trataremos de orientarte.

Cordial saludo.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 12/12/2012, 14:59
 
Fecha de Ingreso: septiembre-2011
Mensajes: 480
Antigüedad: 13 años, 3 meses
Puntos: 18
Respuesta: Colocar Foco en una parte del texto en especifico

Compañero ya empezo el primer problema :S pues como lo dice en el post, se debe crear la variable laCaja de manera global, ya lo hice pero no logro hacer que funcione, no me da error alguno en el explorador ya que veo los errores porque poseo google chorme, pero no muestra errores

Código Javascript:
Ver original
  1. function ponCursorEnPos(pos){  
  2.     if(typeof document.selection != 'undefined' && document.selection){        //método IE
  3.         var tex=laCaja.value;
  4.         laCaja.value='';  
  5.         laCaja.focus();
  6.         var str = document.selection.createRange();  
  7.         laCaja.value=tex;
  8.         str.move("character", pos);  
  9.         str.moveEnd("character", 0);  
  10.         str.select();
  11.     }
  12.     else if(typeof laCaja.selectionStart != 'undefined'){                    //método estándar
  13.         laCaja.setSelectionRange(pos,pos);  
  14.         forzar_focus();            //debería ser focus(), pero nos salta el evento y no queremos
  15.     }
  16. }

la cosa es como deberia usarse? yo coloco por ejemplo esto ponCursorEnPos(5); dentro de alguna funcion javascript y no hace absolutamente nada!
  #8 (permalink)  
Antiguo 12/12/2012, 15:06
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 8 meses
Puntos: 839
Respuesta: Colocar Foco en una parte del texto en especifico

Pasa que Google Chrome al entrar en un campo restaura la selección y mueve el cursor al inicio.
Aquí se habla algo del tema:
http://code.google.com/p/chromium/is...etail?id=32865
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #9 (permalink)  
Antiguo 12/12/2012, 15:13
 
Fecha de Ingreso: septiembre-2011
Mensajes: 480
Antigüedad: 13 años, 3 meses
Puntos: 18
Respuesta: Colocar Foco en una parte del texto en especifico

NO , pero es que yo no busco seleccionar el texto...yo lo que busco es que el cursor se coloque en una posicion en especifico! una funcion por ejemplo colocarcursor(5) donde el 5 es la posicion en la que deseo que el cursor aparezca, o sea que si mi cadena de texto es "Hola mundo" el cursor deberia de aparecer "Hola(AQUI)mundo" si me entindes mas o menos? yo se que eso si se puede hacer porque lo he visto pero hace mucho tiempo!
  #10 (permalink)  
Antiguo 12/12/2012, 15:31
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 8 meses
Puntos: 839
Respuesta: Colocar Foco en una parte del texto en especifico

Sí, entiendo lo que quieres hacer. Lo que te comentaba es justo eso, que Google Chrome restaura la posición del cursor al entrar en el campo.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #11 (permalink)  
Antiguo 12/12/2012, 15:47
 
Fecha de Ingreso: septiembre-2011
Mensajes: 480
Antigüedad: 13 años, 3 meses
Puntos: 18
Respuesta: Colocar Foco en una parte del texto en especifico

umm..pero es que nisiquiera entra el focus o sea te explico yo por ejemplo coloco mi cursor aqui "Hola mu(AQUI)ndo" presiono un boton para que se ejecute una funcion que me borra la letra anterior a donde esta el cursor o sea quedadno asi "Hola mndo" es para borrar, pero ya luego de eso el cursor desaparece no esta ni al principio ni al final ni nada, tengo que hacer click para que este aparezca entonces yo lo que digo es que cuando se ejecute la funcion se ejecute otra donde me coloque el cursor en la posicion especificada o sea quedando asi "Hola m(AQUI)ndo"
  #12 (permalink)  
Antiguo 12/12/2012, 16:10
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 8 meses
Puntos: 839
Respuesta: Colocar Foco en una parte del texto en especifico

Intenta llamando al método focus() del textarea antes de llamar a la función ponCursorEnPos()
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #13 (permalink)  
Antiguo 12/12/2012, 17:01
 
Fecha de Ingreso: septiembre-2011
Mensajes: 480
Antigüedad: 13 años, 3 meses
Puntos: 18
Respuesta: Colocar Foco en una parte del texto en especifico

ok lo hare pero antes revisando el codigo, pude ver que aparece esto

Código Javascript:
Ver original
  1. str.move("character", pos);  
  2.         str.moveEnd("character", 0);  
  3.         str.select();

eso es lo que hace que se ubique el cursor? que es eso? y mas aun esas palabras que aparecen entre comillas simples
  #14 (permalink)  
Antiguo 12/12/2012, 17:05
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 8 meses
Puntos: 839
Respuesta: Colocar Foco en una parte del texto en especifico

En tu caso no, no es esa parte la que hace que se mueva el cursor, esa parte es exclusiva para Internet Explorer.
En cuanto a tus preguntas: http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #15 (permalink)  
Antiguo 12/12/2012, 17:09
 
Fecha de Ingreso: septiembre-2011
Mensajes: 480
Antigüedad: 13 años, 3 meses
Puntos: 18
Respuesta: Colocar Foco en una parte del texto en especifico

Ok, Gracias...compañero hice lo que me dijiste de llamar a la funcion focus del textarea y luego a la otra funcion pero solo coloca el focus al final del texto o sea que no funciona la funcion cuando la llamo hice esto:
Código Javascript:
Ver original
  1. $('#'+marcado).focus();
  2.     var sd = ponCursorEnPos(1);

y pues claro que en la funcion ponCursorEnPos() yo coloco que la variable laCaja es igual a $('#'+marcado) y esa variable es una variable global
  #16 (permalink)  
Antiguo 12/12/2012, 17:24
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 8 meses
Puntos: 839
Respuesta: Colocar Foco en una parte del texto en especifico

En lugar de usar $('#' + marcado) usa document.getElementById('#' + marcado)
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #17 (permalink)  
Antiguo 12/12/2012, 17:48
 
Fecha de Ingreso: septiembre-2011
Mensajes: 480
Antigüedad: 13 años, 3 meses
Puntos: 18
Respuesta: Colocar Foco en una parte del texto en especifico

compañero la funcion me va quedando asi,

Código Javascript:
Ver original
  1. function ponCursorEnPos(pos){  
  2. laCaja = document.getElementById('#' + marcado)
  3.  
  4.     if(typeof document.selection != 'undefined' && document.selection){        //método IE
  5.         var tex=laCaja.value;
  6.         laCaja.value='';  
  7.         laCaja.focus();
  8.         var str = document.selection.createRange();  
  9.         laCaja.value=tex;
  10.         str.move("character", pos);  
  11.         str.moveEnd("character", 0);  
  12.         str.select();
  13.     }
  14.     else if(typeof laCaja.selectionStart != 'undefined'){                    //método estándar
  15.         laCaja.setSelectionRange(pos,pos);  
  16.         forzar_focus();            //debería ser focus(), pero nos salta el evento y no queremos
  17.  
  18. }
  19.  
  20. }

la ejecuto con esto

Código Javascript:
Ver original
  1. $('#'+marcado).focus();
  2.     ponCursorEnPos(5);

y me da el siguiente error en el chorme

Uncaught TypeError: Cannot read property 'selectionStart' of null
  #18 (permalink)  
Antiguo 12/12/2012, 17:51
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 8 meses
Puntos: 839
Respuesta: Colocar Foco en una parte del texto en especifico

Me había equivocado en el mensaje anterior. No me fijé que había escrito con el numeral, es solo document.getElementById(marcado)
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #19 (permalink)  
Antiguo 12/12/2012, 20:19
 
Fecha de Ingreso: septiembre-2011
Mensajes: 480
Antigüedad: 13 años, 3 meses
Puntos: 18
Respuesta: Colocar Foco en una parte del texto en especifico

WOW listoooo....por fin...te ganaste el karma para cada mensaje que me enviaste! GRACIAS POR TU TIEMPO gracias de verdad :D muchas gracias :D esta listo quedo como era! GRACIAS feliz navidad y prospero año nuevo 2013, si llegas a tener algun tipo de problema con el PHP yo te puedo ayudar ya que me desenvuelvo mucho mas con el PHP :D Gracias
  #20 (permalink)  
Antiguo 27/04/2013, 08:35
 
Fecha de Ingreso: octubre-2012
Mensajes: 7
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Colocar Foco en una parte del texto en especifico

Muy interesante el tema, también necesito posicionar el cursor en una posición específica, pero no de un input ni un textarea, si no que de un div que uso como campo:

<div contenteditable="true" spellcheck="true"
role="textbox"
aria-multiline="true"
dir="dir"
id="coment"
data-focus="true"></div>

Y no logro que la función me posicione el cursor en algun lugar, solo me funciona el $('#coment').focus() pero en mi caso no me sirve.

Gracias por su ayuda !!

Etiquetas: especifico, foco, funcion, jquery, parte
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 21:47.