Перенос строки jquery

219
14 января 2018, 06:38

Желаемый результат: При нажатии на enter-отправляется запрос,при нажатии ctrl+enter-перенос строки.(работает) Проблема: Перенос строки делается не там,где стоит курсор,а всегда в конце написанного текста,прошу помочь с этим вопросом,заранее спасибо. html:

<div></div>
<form action="/" id="form" method="post">
<textarea name="text" id="textarea" cols="30" rows="10"></textarea>
</form>

Jquery:

$('#textarea').keypress(function(e) {
if(window.event) {
  var keyCode = window.event.keyCode;     
}
else {
  var keyCode = e.keyCode || e.which;
}
if( (!e.ctrlKey && (keyCode == 13)) ) {
   e.preventDefault();
        $.ajax({
        url: "/",
        context: document.body
        }).done(function() {
        $( "div" ).css("display", "block").text("Отправлено!");
        });
   }else if( (e.ctrlKey && (keyCode == 13)) || (keyCode == 10) ) {
   this.value += "\n";
   }                  
});
Answer 1

Там по ссылке в комментарии поподробнее. А просто и возможно не для всех браузеров

$('#textarea').keypress(function(e) { 
if(window.event) { 
  var keyCode = window.event.keyCode;      
} 
else { 
  var keyCode = e.keyCode || e.which; 
} 
 
if( (!e.ctrlKey && (keyCode == 13)) ) { 
 
   e.preventDefault(); 
        $.ajax({ 
        url: "/", 
        context: document.body 
        }).done(function() { 
        $( "div" ).css("display", "block").text("Отправлено!"); 
        }); 
   }else if( (e.ctrlKey && (keyCode == 13)) || (keyCode == 10) ) { 
      caretStart = this.selectionStart; 
      caretEnd = this.selectionEnd; 
      this.value = (this.value.substring(0, caretStart) 
              + "\n" 
              + this.value.substring(caretEnd)); 
   }                   
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
<div></div> 
<form action="/" id="form" method="post"> 
<textarea name="text" id="textarea" cols="30" rows="10"></textarea> 
</form>

READ ALSO
Сжатие js в Android Studio

Сжатие js в Android Studio

Есть ли плагин/способ в самой Android Studio для сжатия js подобно closure-compiler? У меня webview приложение и не удобно каждый раз при изменениях, компилить...

202
Почему дата с datapicker angular показывает прошлый день?

Почему дата с datapicker angular показывает прошлый день?

ЗдравствуйтеИспользую datapicker с angular material

342
Метод map для копии массива

Метод map для копии массива

Каким образом метод map примененный к копии массива меняет оригинал массива clients ?

180
Parallax scroll - картинка выходит за границы блока при масштабировании

Parallax scroll - картинка выходит за границы блока при масштабировании

День добрый! Столкнулись с проблемой, с которой не получается справиться самостоятельноНа данный момент, в некоторых блоках при прокрутке...

269