Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]Text Area
Forum PHP.pl > Forum > Przedszkole
atom90
Wpisuje wiadomość w textarea która pozniej wysyłam za pomocą entera, lecz za pierwszym razem wysyla mi wiadomosc, ale tez w textarea, przeskakuje mi do nowej lini jak jest juz w nowej lini to juz nie przeskakuje dalej. ale wroce w textare do 1 lini to tak samo. Chciałbym to zmienić aby enter wysylal wiadomosc z textarea, tak jak chce, ale nie przechodzil do nowej lini w textarea. Przejscie do nowej lini było by możliwe za pomocą shift+enter.

$('#massage').bind('keypress', function(e) {
if (e.keyCode == 13) {
self.wyslij();
}
});

massage to id textarea
Turson
return false;
po self.wyslij();
Pyton_000
raczej
e.preventDefault();
atom90
Obydwa przyklady dzialaja, dziekuje, a co do shift+enter?
Pyton_000
Działają, ale return jest nie zalecane

Ad. problemu:
http://stackoverflow.com/questions/6014702...ine-in-textarea
atom90
Kod
function getCaret(el) {
  if (el.selectionStart) {
     return el.selectionStart;
  } else if (document.selection) {
     el.focus();

   var r = document.selection.createRange();
   if (r == null) {
    return 0;
   }

    var re = el.createTextRange(),
    rc = re.duplicate();
    re.moveToBookmark(r.getBookmark());
    rc.setEndPoint('EndToStart', re);

    return rc.text.length;
  }  
  return 0;
}

$('textarea').keyup(function (event) {
   if (event.keyCode == 13 && event.shiftKey) {
       var content = this.value;
       var caret = getCaret(this);
       this.value = content.substring(0,caret)+
                     "\n"+content.substring(caret,content.length);
       event.stopPropagation();

  }
});



lub
Kod
$("textarea").keydown(function(e){
    // Enter was pressed without shift key
    if (e.keyCode == 13 && !e.shiftKey)
    {
        // prevent default behavior
        e.preventDefault();
    }
});


one działają, ale nie wiem jak połączyć to z enterem ktory ma sam wysylac bo enter+shift tez niestety wysyla no chyba ze jest pusta wiadomosc to przejdzie do nowej lini, ale z faktu ze nie pozwalam na wysylanie nowej wiadomosci po trimowaniu jak sa same biale znaki.

Edit:
Kod
  $('#massage').keydown('keypress', function(e) {
        if (e.keyCode == 13)
    {
        if (e.shiftKey === true){
             //spacja
             }
        else
        {
            self.wyslij();
            e.preventDefault();
        }
      
    }
    });


tak zrobiłem teoretycznie działa w textarea przechodzi do nowej lini i jest ok a jak sam enter to wysyla, ale nowe linie w wyswietlaniu wiadomosci nie bierze pod uwage ^^
Pyton_000
PHP - nl2br
atom90
za pomoca jquery tylko moge
Turson
http://stackoverflow.com/questions/8481025...es-into-account
Naucz się szukać bo na wszystkie pytania w tym temacie odpowiedź znajduje się w 3 sekundy
atom90
Dzięki za pomoc, ale okazuje się ze nie bede wstanie wyswietlić tego tak jak chce bo serwer na którym wykonuje sie wymiana wiadomosci sprowadza to do jednej lini mimo enterów, ale mniejsza z tym.
A co do szukania, znajdywalem te linki, ale nie działalo mi to w 100% w moim przypadku. Jeszcze raz dzięki za pomoc
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.