2015-11-03 4 views
1

Есть ли способ предотвратить добавление новой строки, если текущая строка пуста в текстовом поле? Пример:val() заменить в textarea

Разрешено:

The brown 
candle 

Предотвращение:

The brown 
      // --> empty line break 
candle 
      // --> empty line break 
      // --> empty line break 

В основном я хочу, чтобы избежать пустых переносы строк. Как я могу это сделать?

Это то, что я пробовал, но не добился успеха.

$('textarea#comment').val($('textarea#comment').val().replace(/\s*$/,"")); 
+0

Вы уже спрашивали, что, не так ли? – DontVoteMeDown

+0

@DontVoteMeDown Да, я удалил его в течение 2 минут. Добавлено как новое после нескольких попыток. – Becky

+0

Вам нужно определить нажатие клавиши ввода или нет. Если это ключ ввода, то от него отходит. '$ (документ) .keypress (функция (е) { если (e.which == 13) { оповещения ('Вы нажали войти!');} });' –

ответ

2

вы должны проверить и заменить текущее значение текстового области на клавишу до достижения этой цели следующим образом:

$('textarea#comment').on('keyup', function() { 
 
    $('textarea#comment').val($('textarea#comment').val().replace(/^(\r\n)|(\n\n)/,'')); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
<textarea id="comment"></textarea>

+0

Это останавливает то, что говорит OP, допустимо (разрыв строки на линии с текстом!) – Jamiec

+0

, но все же допускается несколько пробелов. хорошо +1 для заблокированного входа. –

+1

Попробуйте нажать ENTER и удерживайте ее нажатой. Да. – leuquim

3

Следующая предотвратит пустые строки, сохраняя при этом курсор на несколько нормальное положение. Хотя вам нужно проверить selectionEnd и input-event поддержку вашего проекта.

$('.no-extra-lines').on('input', function() { 
 
    var notAllowed = /(\r?\n){2,}/g, c = this.selectionEnd, len = this.value.length; 
 

 
    if (notAllowed.test(this.value)) { 
 
    this.value = this.value.replace(notAllowed, '$1'); 
 
    this.selectionEnd = c + this.value.length - len; 
 
    } 
 
});
<textarea class="no-extra-lines" rows="12" style="box-sizing: border-box; width: 100%">The brown 
 
candle</textarea> 
 
<script src="//code.jquery.com/jquery-2.1.4.min.js"></script>

Смежные вопросы