Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wstawienie tekstu w "aktualne" pole formularza
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
termin
Witam, chcę zrobić formularz w którym będzie można używać dziwne znaczki, aby nie używać windosowego "wstaw symbol" tylko aby użytkownik sobie kliknął na literce którą chce uzyskać - zobacz przykład
Czy ktoś może mi podpowieć jak zrobić aby te znaczki nie wpisywały mi się tylko w TEXT1 ale w polu w którym aktualnie znajduje się kursor?

  1. <script type="text/javascript">
  2. function setLetter(text) {
  3. var txtarea = document.searchParam.word;
  4. if (txtarea.createTextRange && txtarea.caretPos)
  5. {
  6. var caretPos = txtarea.caretPos;
  7. caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;
  8. txtarea.focus();
  9. }
  10. else
  11. {
  12. txtarea.value += text;
  13. txtarea.focus();
  14. }
  15. }
  16. function active(text)
  17. {
  18. if (text.createTextRange) text.caretPos = document.selection.createRange().duplicate();
  19. }
Cezar708
jest kilka sposobów. Na początku po prostu musisz okrelić, Który <input> jest aktualnie aktywny. W Twoim przypadku jak nie wiesz jaka jest liczba Twoich <input'ów> to napisz krótki skrypt, który reaguje na zdarzenie onFocus elementu <input>

Przykład:

  1. <script (...)>
  2.  
  3. var globalFocusOn = '';
  4.  
  5. function setFocusOn(id){
  6. globalFocusOn = id;
  7. }
  8.  
  9.  
  10. <INPUT name=word1 class="txt" id="word" onFocus="setFocusOn('word')" (...)>(...)
  11. <INPUT name=word1 class="txt" id="word1" onFocus="setFocusOn('word1')" (...)>


i potem w Twoim kodzie zmieniasz odpowiednio:

  1. (...)
  2. var txtarea = document.getElementById(globalFocusOn);
  3. // zabezbieczenie przed ewentualnym bledem...
  4. if ( typeof txtarea == "undefined" ) txtarea = document.getElementById('word');
  5. (...)
termin
Dzięki wielkie, właśnie o to chodziło.

Pozdrawiam
sanchoo
hey! ja zrobilem to tak:

  1. <form action="test.php" method="post" name="tresc">
  2. <textarea name="tresc2" cols="25" rows="13"></textarea>
  3. </form>
  4. Wstaw: <br>
  5. - <span onclick="document.tresc.tresc2.value+='JAKAS TRESC'">Stopka</span><br>


Wszystko działa ale po kliknieciu wstaw "JAKAS TRESC" dodawana zawsze jest na koncu :/ mozna jakoś tak zrobić żeby robiło się to w zależności
gdzie jest kursor?? tzz "to jest jakis dlugi mail" i chce wstawic "Jakas tresc" pomiedzy jakis-dlugi... klikam tam daje wstaw i wto miejsce ma mi sie dodac:)
bede wdzieczny..
skowron-line
moze to cos pomoze
http://forum.php.pl/index.php?showtopic=71...kursor+textarea
a tak wogole to temat byl juz na forum poruszany niejednokrotnie wiec wystarczy uzyc szukajki
sanchoo
dokladnie... szukalem ale nie znalazlem :/ widac nie umiejetnie...
dzieki serdeczne!
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.