Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]Wstawianie tekstu w textarea w miejscu kursora
Forum PHP.pl > Forum > Przedszkole
coomler
Witam, troszkę się umęczyłem z js, którego prawie nie znam, ale jeszcze nie osiągnąłem zamierzonego efektu. Chcę, aby po kliknięci przycisku, wartość pola input została wstawiona do textarea w miejsce kursora. Póki co brakuje mi tylko/aż tego ostatniego.

Kod
function addtext1() {
    var newtext = document.mymform.color1.value;

    document.myform.outputtext.value += newtext;
}


  1. <input type="text" name="color1" value="wartość, którą się wpisze" />
  2. <input type="button" value="Dodaj text" onClick="addtext1();">


skowron-line
Panie koleszko bardzo skomplikowane to jest smile.gif.
Dla IE szukaj createRange a dla reszty selectionStart
krispak
[JAVASCRIPT] pobierz, plaintext
  1. function insertAtCursor(myField, myValue) {
  2. //IE support
  3. if (document.selection) {
  4. myField.focus();
  5. sel = document.selection.createRange();
  6. sel.text = myValue;
  7. }
  8. //MOZILLA/NETSCAPE support
  9. else if (myField.selectionStart || myField.selectionStart == '0') {
  10. var startPos = myField.selectionStart;
  11. var endPos = myField.selectionEnd;
  12. myField.value = myField.value.substring(0, startPos)
  13. + myValue
  14. + myField.value.substring(endPos, myField.value.length);
  15. } else {
  16. myField.value += myValue;
  17. }
  18. }
  19. // calling the function
  20. insertAtCursor(document.formName.fieldName, 'this value');
[JAVASCRIPT] pobierz, plaintext


Z tej stronki
coomler
Co do tego kodu co podałeś krispak to znalazłem nawet podobny o ile nie taki sam. Problem polega na tym, że nie mam zielonego pojęcia jak ten skrypt podpiąć do tego mojego, gdyż js znam tylko co prawie nic. Nie oczekuję gotowca, ale jakieś podpowiedzi chociaż.

EDIT: posiedziałem chwilę i oto efekt

Kod
function insertAtCursor(myform, mymform) {
  
      if (myform.selectionStart || myform.selectionStart == '0') {
  
      var startPos = myform.selectionStart;
  
      var endPos = myform.selectionEnd;

      myform.value = myform.value.substring(0, startPos)

      + mymform

      + myform.value.substring(endPos, myform.value.length);
      
      } else {

      myform.value += mymform;

      }

}

function addtext1() {
    var newtext = document.mymform.color1.value;

    document.myform.outputtext.value += newtext;
}


  1. <input type="text" name="color1" value="wartość, którą się wpisze" />
  2. <input type="button" value="Dodaj text" onClick="addtext1();insertAtCursor(document.myform.outputtext, 'tutaj')">


Jak zrobić, aby wartość pola input[type=text] została wstawiona (document.myform.outputtext, 'tutaj') tutaj:)
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.