Ограничение количества строк и букв в одной строке textarea, с автопереносом?

Нашел замечательный скрипт, который ограничивает кол. строк и букв на одной строке в textarea,

JS:
$(function(){
    $('textarea').on('keypress',function(event){
          var text = $('textarea').val();
          var lines = text.split("\n");
          var currentLine = this.value.substr(0, this.selectionStart).split("\n").length;
          console.log(lines);
          console.log(currentLine);
          console.log(lines[currentLine-1]);
          if(event.keyCode == 13) {
            if (lines.length >= $(this).attr('rows'))
                return false;
          }
          else{
             if(lines[currentLine-1].length >= $(this).attr('cols')) {
                 return false; // prevent characters from appearing
         }
    }
});
});

HTML:
<textarea rows="5" cols="15"></textarea>

Но когда пишешь текст, неудобно каждый раз переходить на новую строку нажимая enter. Как сделать, чтобы работал автоперенос на 4х строках, а на 5й строке блокировался автоперенос ?
  • Вопрос задан
  • 2198 просмотров
Решения вопроса 1
Вот ваш переделанный пример:
$(function(){

    $('textarea').on('keypress',function(event){
          var text = $('textarea').val();
          var lines = text.split("\n");
          var currentLine = this.value.substr(0, this.selectionStart).split("\n").length;
          console.log(lines);
          console.log(currentLine);
          console.log(lines[currentLine-1]);
          if(event.keyCode == 13) {
            if (lines.length >= $(this).attr('rows'))
                return false;
          }
          else{
             if(lines[currentLine-1].length >= $(this).attr('cols')) {
                 if (lines.length <= $(this).attr('rows') - 1) {
                     $(this).val(text + '\n');
                 } else {
                      return false; 
                 }
             }
          }
});
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 08:04
1 руб./за проект
22 нояб. 2024, в 06:06
1500 руб./в час
22 нояб. 2024, в 06:04
1 руб./за проект