Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JS]jak wstawić tekst w miejscu kursora
Forum PHP.pl > Forum > Przedszkole
rasgan
Mam formularz z polem textarea. Chciałbym by po kliknięciu na obrazek wstawić jakiś tekst w miejscu, w którym jest kursor w polu textarea. Jest mi to potrzebne do zrobienia prostego edytora dokumentów z możliwością wstawiania zmiennych z bazy przez użytkownika. Mam taki kod na stronie:

Kod
<pf:form id="doc_edit" method="POST" action="{pr_get_link cut="task" add="task:edytuj_dokument_ok"}" name="doc_edit" >
<br />
<table width="600" cellpadding="0" cellspacing="0" border="1" align="center">
<tr>
    <td><img src="center" name="wysrodkowane" alt="center" border="1" alt="Wyśrodkowane" title="Wyśrodkowane" onclick="Tutaj polecenia JS wstawiajace moj tekst" /></td>
</tr>
</table>
<br />
<pf:memo name="doc_tresc" id="doc_tresc" style="width: 648px; height: 550px;" value="{$DOC.doc_tresc}" />
<br /><br />
<pf:submit name="field_save" id="save" value="Zapisz" />
</pf:form>
Void
  1. function putText(text) {
  2. area = document.getElementById("id pola textarea");
  3.  
  4. if (document.selection) {
  5. area.focus();
  6. selection = document.selection.createRange();
  7. selection.text = text;
  8. } else if ( area.selectionStart || area.selectionStart == '0' ) {
  9. var begin = area.selectionStart;
  10. var end = area.selectionEnd;
  11. area.value = area.value.substring(0, begin) + text + area.value.substring(end, area.value.length);
  12. } else {
  13. area.value += text;
  14. }
  15.  
  16. area.focus();
  17. }


Funkcja wstawia tekst na końcu treści pola textarea (jeżeli kursor jest poza polem) lub w miejscu kursora, jeżeli jest aktywny.

wywołujesz normalnie poprzez putText('jakis tekst');
rasgan
Dziękuję, działa ślicznie. A czy da się jeszcze zrobić tak, żeby kursor nie przeskakiwał po dodaniu na koniec pola tekstowego tylko pozostał w miejscu za wstawionym tekstem?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.