我在我的 web 应用程序中使用 contenteditable div 元素,我试图想出一个解决方案来限制该区域允许的字符数量,一旦达到限制,尝试输入字符就什么都不做。这是我到目前为止:
var content_id = 'editable_div';
//binding keyup/down events on the contenteditable div
$('#'+content_id).keyup(function(){ check_charcount(content_id, max); });
$('#'+content_id).keydown(function(){ check_charcount(content_id, max); });
function check_charcount(content_id, max)
{
if($('#'+content_id).text().length > max)
{
$('#'+content_id).text($('#'+content_id).text().substring(0, max));
}
}
这确实将字符数限制为“max”指定的数量,但是一旦区域的文本由 jquery .text() 函数设置,光标将自身重置到区域的开头。因此,如果用户继续输入,新输入的字符将被插入到文本的开头,而文本的最后一个字符将被删除。所以真的,我只需要某种方式将光标保持在可编辑区域文本的末尾。