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 ^^