Ich frage mich, wie ich mit jquery Text in einen Textbereich einfügen kann, wenn ich auf ein Ankertag klicke.
Ich möchte keinen Text ersetzen, der bereits im Textbereich vorhanden ist. Ich möchte neuen Text an den Textbereich anhängen.
jquery
formatting
textarea
Oliver Stubley
quelle
quelle
Antworten:
Nach dem, was Sie in Jasons Kommentaren haben, versuchen Sie:
Bearbeiten - Zum Anhängen an Text siehe unten
quelle
Ich mag die jQuery-Funktionserweiterung. Die jedoch dies bezieht sich auf das jQuery - Objekt nicht das DOM - Objekt. Deshalb habe ich es ein wenig modifiziert, um es noch besser zu machen (kann in mehreren Textfeldern / Textbereichen gleichzeitig aktualisiert werden).
Das funktioniert wirklich gut. Sie können an mehreren Stellen gleichzeitig einfügen, z.
quelle
sel
global sein?Ich benutze diese Funktion in meinem Code:
Es ist nicht 100% meins, ich habe es irgendwo gegoogelt und dann auf meine App abgestimmt.
Verwendung:
$('#element').insertAtCaret('text');
quelle
Ich weiß, dass dies eine alte Frage ist, aber für Leute, die nach dieser Lösung suchen, ist es erwähnenswert, dass Sie append () nicht verwenden sollten, um einem Textbereich Inhalte hinzuzufügen. Die Methode append () zielt auf innerHTML ab, nicht auf den Wert des Textbereichs. Der Inhalt wird möglicherweise im Textbereich angezeigt, jedoch nicht zum Formularwert des Elements hinzugefügt.
Wie oben erwähnt mit:
wird gut funktionieren.
quelle
Mit dieser Option können Sie einen Text in das Textfeld "einfügen". Einfügen bedeutet: Hängt den Text an die Stelle an, an der sich der Cursor befindet.
Und Sie können es so verwenden:
Witzig und sinnvoller, wenn wir die Funktion "Tag in Text einfügen" haben.
funktioniert in allen Browsern.
quelle
.focus()
Aufrufe und Aktualisierungen derselectionStart
undselectionEnd
nach der Änderung herausgenommen. Spanische Variablen wurden möglicherweise verwendet, um eine andere Antwort zu rechtfertigen ...Hej das ist eine modifizierte Version, die in FF @least für mich OK funktioniert und an der Carets Position einfügt
quelle
Hast du es versucht:
Ich bin mir jedoch nicht sicher, ob es sich um eine automatische Beleuchtung handelt.
EDIT :
Anhängen:
quelle
append()
funktioniert der Wert von a nichttextarea
. Dieappend()
Methode zielt auf das innerHTML ab, nicht auf den Wert des Textbereichs.Was Sie verlangen, sollte in jQuery- ziemlich einfach sein.
Ich kann mir vorstellen, eingefügten Text am besten hervorzuheben, indem ich ihn in eine Spanne mit einer CSS-Klasse
background-color
einbinde, die auf die Farbe Ihrer Wahl eingestellt ist. Beim nächsten Einfügen können Sie die Klasse aus vorhandenen Bereichen entfernen (oder die Bereiche entfernen).Es gibt jedoch viele kostenlose WYSIWYG HTML / Rich Text-Editoren auf dem Markt. Ich bin sicher, einer wird Ihren Anforderungen entsprechen
quelle
Hier ist eine schnelle Lösung, die in jQuery 1.9+ funktioniert:
a) Holen Sie sich die Caret-Position:
b) Fügen Sie den Text an der Caret-Position hinzu:
c) Beispiel
quelle
Es funktioniert gut für mich in Chrome 20.0.11
quelle
Wenn Sie Inhalte an den Textbereich anhängen möchten, ohne sie zu ersetzen, können Sie Folgendes versuchen
Nach Ihrem Szenario wäre es
quelle
Ich denke das wäre besser
quelle
Eine andere Lösung wird auch hier beschrieben , falls einige der anderen Skripte in Ihrem Fall nicht funktionieren.
quelle
Dies ähnelt der Antwort von @panchicore, bei der ein kleiner Fehler behoben wurde.
quelle
Eine einfache Lösung wäre: ( Annahme : Sie möchten, dass alles, was Sie in das Textfeld eingeben, an das angehängt wird, was bereits im Textbereich vorhanden ist. )
Im onClick - Ereignisse der <a> -Tag, schreiben Sie eine benutzerdefinierte Funktion, die dies tut:
(wobei die IDs textId1 - für o / p textArea textId2 - für i / p textbox ')
quelle
quelle
Ich habe das benutzt und es funktioniert gut :)
Remi
quelle