Me pregunto cómo puedo insertar texto en un área de texto usando jquery, al hacer clic en una etiqueta de anclaje.
No quiero reemplazar el texto que ya está en textarea, quiero agregar texto nuevo a textarea.
jquery
formatting
textarea
Oliver Stubley
fuente
fuente
Respuestas:
De lo que tienes en los comentarios de Jason intenta:
Editar- Para adjuntar al texto mira abajo
fuente
Me gusta la extensión de la función jQuery. Sin embargo, esto se refiere al objeto jQuery, no al objeto DOM. Así que lo modifiqué un poco para hacerlo aún mejor (se puede actualizar en múltiples cuadros de texto / áreas de texto a la vez).
Esto funciona muy bien Puede insertar en varios lugares a la vez, como:
fuente
sel
destinado a ser global?Yo uso esta función en mi código:
No es 100% mío, lo busqué en Google en algún lugar y luego ajusté mi aplicación.
Uso:
$('#element').insertAtCaret('text');
fuente
Sé que esta es una pregunta antigua, pero para las personas que buscan esta solución, vale la pena señalar que no debe usar append () para agregar contenido a un área de texto. el método append () se dirige a innerHTML, no al valor del área de texto. El contenido puede aparecer en el área de texto, pero no se agregará al valor del formulario del elemento.
Como se señaló anteriormente usando:
Funcionará bien.
fuente
este le permite "inyectar" un texto en el cuadro de texto, inyectar significa: agrega el texto donde está el cursor.
Y puedes usarlo así:
Es divertido y tiene más sentido cuando tenemos la funcionalidad "Insertar etiqueta en el texto".
Funciona en todos los navegadores.
fuente
.focus()
invocaciones y las actualizaciones deselectionStart
yselectionEnd
después de la modificación. Las variables en español pueden haber sido utilizadas para justificar otra respuesta ...Hej, esta es una versión modificada que funciona bien en FF @least para mí e inserta en la posición de cuidado
fuente
has probado:
Sin embargo, no estoy seguro sobre la iluminación automática.
EDITAR :
Para anexar:
fuente
append()
no funciona en el valor de atextarea
. Elappend()
método apunta al innerHTML, no al valor del área de texto.Lo que pides debe ser razonablemente sencillo en jQuery-
La mejor manera en que puedo pensar en resaltar el texto insertado es envolviéndolo en un lapso con una clase CSS con
background-color
el color que elija. En la siguiente inserción, puede eliminar la clase de cualquier tramo existente (o quitar los tramos).Sin embargo, hay muchos editores WYSIWYG HTML / Rich Text gratuitos disponibles en el mercado, estoy seguro de que uno satisfará sus necesidades
fuente
Aquí hay una solución rápida que funciona en jQuery 1.9+:
a) Obtener posición de cuidado:
b) Agregar texto en posición de intercalación:
c) Ejemplo
fuente
Me funciona bien en Chrome 20.0.11
fuente
Si desea agregar contenido al área de texto sin reemplazarlos, puede probar lo siguiente
Según su escenario sería
fuente
Creo que esto seria mejor
fuente
Aquí también se describe otra solución en caso de que algunos de los otros scripts no funcionen en su caso.
fuente
Esto es similar a la respuesta dada por @panchicore con un error menor corregido.
fuente
La solución simple sería: ( Suposición : desea que lo que escriba dentro del cuadro de texto se agregue a lo que ya existe en el área de texto )
En el evento onClick de la etiqueta <a>, escriba una función definida por el usuario, que hace esto:
(donde los identificadores, textId1 - para o / p textArea textId2 -for i / p textbox ')
fuente
fuente
Lo usé y funciona bien :)
Remi
fuente