在具有每行字符数限制和总行数限制的文本区域中包装单词
Wrapping a word in a textarea that has a per-line character limit and a total-line-number limit
我实现了以前的答案 given here,现在我需要自动将单词换行,而不是总是必须手动按回车键。有任何想法吗?我在这方面遇到了很多麻烦。
代码:
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;
}
}
});
这是the working fiddle你的案例。
我将 else 分支稍微修改如下:
if (lines[currentLine - 1].length >= ($(this).attr('cols') - 1)) {
$('textarea').val($('textarea').val() + "-\n");
// return false; // prevent characters from appearing
}
正如您在 fiddle 中看到的那样,当键入的文本达到 col 限制时,代码会添加一个 - 和一个新行。然后它在用户键入时在下一行继续。
我实现了以前的答案 given here,现在我需要自动将单词换行,而不是总是必须手动按回车键。有任何想法吗?我在这方面遇到了很多麻烦。
代码:
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;
}
}
});
这是the working fiddle你的案例。
我将 else 分支稍微修改如下:
if (lines[currentLine - 1].length >= ($(this).attr('cols') - 1)) {
$('textarea').val($('textarea').val() + "-\n");
// return false; // prevent characters from appearing
}
正如您在 fiddle 中看到的那样,当键入的文本达到 col 限制时,代码会添加一个 - 和一个新行。然后它在用户键入时在下一行继续。