在具有每行字符限制和总行数限制的文本区域中换行一个单词

Wrapping a word in a textarea that has a per-line character limit and a total-line-number limit

本文关键字:换行 单词 一个 区域 字符 文本      更新时间:2023-09-26

我实现了前面给出的答案,现在我需要自动换行,而不是总是手动按回车键。什么好主意吗?我在这方面遇到了不少麻烦。

代码:

jQuery('#gift-message-whole-message').on('keypress', function (event) {
                        var text = jQuery('#gift-message-whole-message').val();
                        var lines = text.split(''n');
                        var currentLine = this.value.substr(0, this.selectionStart).split(''n').length;
                        if (event.keyCode == 13) {
                            if (lines.length >= jQuery(this).attr('rows')) return false;
                        } else {
                            if (lines[currentLine - 1].length >= jQuery(this).attr('cols')) {
                                return false;
                            }
                        }
                    });

这是您的案例的工作小提琴。

我稍微改变了else分支如下:

        if (lines[currentLine - 1].length >= ($(this).attr('cols') - 1)) {
             $('textarea').val($('textarea').val() + "-'n");
//                return false; // prevent characters from appearing
        }

正如您在代码中看到的,当输入的文本达到col限制时,代码会添加一个-和一个新行。然后在下一行继续进行用户输入。