Eu estou querendo saber como posso inserir texto em uma área de texto usando jquery, com o clique de uma marca de âncora.
Não quero substituir o texto na área de texto, quero acrescentar novo texto à área de texto.
jquery
formatting
textarea
Oliver Stubley
fonte
fonte
Respostas:
Pelo que você tem nos comentários de Jason, tente:
Editar - Para anexar ao texto, veja abaixo
fonte
Eu gosto da extensão da função jQuery. No entanto, isso se refere ao objeto jQuery e não ao objeto DOM. Então, eu o modifiquei um pouco para torná-lo ainda melhor (pode ser atualizado em várias caixas de texto / áreas de texto de uma só vez).
Isso funciona muito bem. Você pode inserir em vários lugares ao mesmo tempo, como:
fonte
sel
destinado a ser global?Eu uso essa função no meu código:
Não é 100% meu, pesquisei em algum lugar do Google e depois ajustei para o meu aplicativo.
Uso:
$('#element').insertAtCaret('text');
fonte
Sei que essa é uma pergunta antiga, mas para as pessoas que procuram essa solução, é importante notar que você não deve usar append () para adicionar conteúdo a uma área de texto. o método append () tem como alvo innerHTML e não o valor da área de texto. O conteúdo pode aparecer na área de texto, mas não será adicionado ao valor do formulário do elemento.
Como observado acima, usando:
vai funcionar bem.
fonte
este permite "injetar" um pedaço de texto na caixa de texto, injetar significa: acrescenta o texto onde está o cursor.
E você pode usá-lo assim:
Engraçado e com mais sentido quando temos a funcionalidade "Inserir tag no texto".
funciona em todos os navegadores.
fonte
.focus()
invocações e atualizações paraselectionStart
eselectionEnd
após a modificação. Variáveis espanhóis pode ter sido usada para justificar outra resposta ...Hej, esta é uma versão modificada que funciona bem em FF @least para mim e insere na posição de cursor
fonte
você tentou:
não tenho certeza sobre o realce automático, no entanto.
EDITAR :
Para anexar:
fonte
append()
não funciona no valor de atextarea
. Oappend()
método tem como alvo o innerHTML, não o valor da área de texto.O que você solicita deve ser razoavelmente direto no jQuery-
A melhor maneira de pensar em destacar o texto inserido é envolvê-lo em um espaço com uma classe CSS com
background-color
definida para a cor de sua escolha. Na próxima inserção, você pode remover a classe de qualquer extensão existente (ou retirar a extensão).No entanto, existem muitos editores WYSIWYG HTML / Rich Text gratuitos disponíveis no mercado, tenho certeza de que um atenderá às suas necessidades
fonte
Aqui está uma solução rápida que funciona no jQuery 1.9+:
a) Obter posição de sinal de intercalação:
b) Anexar texto na posição de sinal de intercalação:
c) Exemplo
fonte
Funciona bem para mim no Chrome 20.0.11
fonte
Se você deseja anexar conteúdo à área de texto sem substituí-lo, tente o abaixo
De acordo com o seu cenário, seria
fonte
Eu acho que isso seria melhor
fonte
Outra solução também é descrita aqui , caso alguns dos outros scripts não funcionem no seu caso.
fonte
Isso é semelhante à resposta dada por @panchicore com um pequeno bug corrigido.
fonte
Solução simples seria: ( Assunção : Você quer o que você digite dentro da caixa de texto para se anexado ao que já está lá na textarea )
No evento onClick da marca <a>, escreva uma função definida pelo usuário, que faz isso:
(onde os IDs, textId1 - para o / p textArea textId2 - para i / p textbox ')
fonte
fonte
Eu usei isso e funciona bem :)
Remi
fonte