Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript]Text Area, Enter
atom90
post
Post #1





Grupa: Zarejestrowani
Postów: 172
Pomógł: 0
Dołączył: 11.06.2014

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
atom90
post
Post #2





Grupa: Zarejestrowani
Postów: 172
Pomógł: 0
Dołączył: 11.06.2014

Ostrzeżenie: (0%)
-----


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 ^^
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 13:57