0

我有一个不是很宽的文本区域。我希望当用户输入文本时,一旦一行有 50 个字符,就会有换行符。我不想要任何换行的文本。只是换行符。有没有办法做到这一点?

我试图在一条线上测试一些基本的东西但失败了。

$('#textarea').keypress(function (e) {
if ($(this).val().length == 50) {
    $(this).val()[51] == '\n'
}
})

我显然不是很有经验。我不知道我是否应该开始研究 regExp 对象。

我不能允许换行文本,因为我需要测量 textarea 的每一行都有什么。用户提交表单后,我需要能够使用这样的东西:

var line = $('#textarea').val().split('\n');
for(i = 0; i < line.length; i++){
    // do something
}
4

3 回答 3

0

试试这个。演示:http: //jsfiddle.net/ZtPPk/2

$("textarea").keyup(function(e) {
    var $this = $(this);
    var length = $this.val().length;
    if(length % 50 == 0) {
        $this.val($this.val() + "\n");   
    }
});
于 2013-09-16T00:19:30.800 回答
0

尝试

$('textarea').keypress(function () {
  var length = $(this).val().length;
  if (length % 51 == 0 &&
      length > 0) {
    var val = $(this).val();
    $(this).val(val + '\n');
  }
});

http://jsfiddle.net/2QZbG/

于 2013-09-16T00:19:44.710 回答
0

您已经使用%查看长度和 50 的倍数并在末尾添加 \n 。演示

if ($(this).val().length % 50 == 0) {
    $(this).val($(this).val() + '\n);
}
于 2013-09-16T00:11:29.883 回答