Zastanawiam się, jak mogę wstawić tekst do obszaru tekstowego za pomocą jquery po kliknięciu znacznika kotwicy.
Nie chcę zastępować tekstu znajdującego się już w obszarze tekstowym, chcę dołączyć nowy tekst do obszaru tekstowego.
jquery
formatting
textarea
Oliver Stubley
źródło
źródło
Odpowiedzi:
Z tego, co masz w komentarzach Jasona, spróbuj:
Edycja - aby dołączyć do tekstu spójrz poniżej
źródło
Podoba mi się rozszerzenie funkcji jQuery. Jednakże, to odnosi się do obiektu jQuery nie obiektu Dom. Więc zmodyfikowałem go trochę, aby był jeszcze lepszy (można aktualizować w wielu polach tekstowych / obszarach tekstowych jednocześnie).
To działa naprawdę dobrze. Możesz wstawiać w wiele miejsc jednocześnie, na przykład:
źródło
sel
ma być globalny?Używam tej funkcji w moim kodzie:
Nie jest w 100% mój, szukałem go gdzieś w Google, a następnie dostroiłem do mojej aplikacji.
Stosowanie:
$('#element').insertAtCaret('text');
źródło
Wiem, że to stare pytanie, ale dla osób szukających tego rozwiązania warto zauważyć, że nie należy używać metody append () do dodawania treści do obszaru tekstowego. metoda append () odnosi się do innerHTML, a nie wartości textarea. Treść może pojawić się w obszarze tekstowym, ale nie zostanie dodana do wartości formularza elementu.
Jak wspomniano powyżej, używając:
będzie działać dobrze.
źródło
ten pozwala na "wstrzyknięcie" fragmentu tekstu do pola tekstowego, wstrzyknięcie oznacza: dołącza tekst w miejscu, w którym znajduje się kursor.
Możesz go używać w ten sposób:
Zabawne i bardziej sensowne, gdy mamy funkcję „Wstaw znacznik do tekstu”.
działa we wszystkich przeglądarkach.
źródło
.focus()
inwokacje i aktualizacje doselectionStart
iselectionEnd
po modyfikacji. Hiszpańskie zmienne mogły zostać użyte do uzasadnienia innej odpowiedzi ...Hej to zmodyfikowana wersja, która u mnie działa OK w FF @least i wstawia w pozycji karetki
źródło
czy próbowałeś:
nie jestem jednak pewien co do automatycznego podświetlania.
EDYCJA :
Dołączyć:
źródło
append()
nie działa na wartość atextarea
.append()
Metoda kierowana innerHTML, a nie wartość pola tekstowego.To, o co prosisz, powinno być dość proste w jQuery-
Najlepszym sposobem, w jaki przychodzi mi do głowy, aby wyróżnić wstawiony tekst, jest zawijanie go w rozpiętość klasą CSS z
background-color
ustawionym na wybrany kolor. Przy następnym wstawieniu możesz usunąć klasę z istniejących rozpiętości (lub usunąć rozpiętość).Jednak na rynku dostępnych jest wiele darmowych edytorów WYSIWYG HTML / Rich Text, jestem pewien, że jeden będzie odpowiadał Twoim potrzebom
źródło
Oto szybkie rozwiązanie, które działa w jQuery 1.9+:
a) Uzyskaj pozycję opiekuna:
b) Dołącz tekst w pozycji daszka:
c) Przykład
źródło
U mnie działa dobrze w Chrome 20.0.11
źródło
Jeśli chcesz dołączyć zawartość do obszaru tekstu bez ich zastępowania, możesz wypróbować poniższe
Zgodnie z twoim scenariuszem tak będzie
źródło
Myślę, że tak byłoby lepiej
źródło
Inne rozwiązanie jest opisane również tutaj, na wypadek gdyby niektóre inne skrypty nie działały w Twoim przypadku.
źródło
Jest to podobne do odpowiedzi udzielonej przez @panchicore z naprawionym drobnym błędem.
źródło
Prostym rozwiązaniem byłoby: ( Wniebowzięcie : Chcesz cokolwiek wpiszesz wewnątrz pola tekstowego , aby dołączone do tego, co już istnieje w textarea )
W zdarzeniu onClick tagu <a> napisz funkcję zdefiniowaną przez użytkownika, która robi to:
(gdzie identyfikatory, textId1 - dla o / p textArea textId2 -for i / p textbox ')
źródło
źródło
Użyłem tego i działa dobrze :)
Remi
źródło