val()。替换textarea

时间:2015-11-03 12:15:15

标签: javascript jquery

如果当前行在textarea中为空,是否有办法阻止添加换行符?例如:

允许:

The brown
candle

阻止:

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

基本上我想避免空换行。我怎么能这样做?

这是我尝试但没有成功的。

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

2 个答案:

答案 0 :(得分:3)

以下内容将阻止空行,同时将光标保持在某种理智的位置。虽然您需要检查项目的selectionEndinput-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>

答案 1 :(得分:2)

你应该检查并更换按键上的文本区域的当前值,以实现以下目的:

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