如果当前行在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 :(得分: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>
答案 1 :(得分:2)
你应该检查并更换按键上的文本区域的当前值,以实现以下目的:
$('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;