Javascript contenteditable=";“真的”;div字符限制

Javascript contenteditable=";“真的”;div字符限制,javascript,contenteditable,Javascript,Contenteditable,您好,我正在尝试限制contenteditable=“true”div中的文本: var char=500; $(“#计数器”).append(“您有“+char+”剩余的字符”); $(“#编辑器”).keypress(函数(){ if($(this).text().length>char){ $(this.text($(this.text().substr(1)); } var rest=char-$(this).text().length; $(“#counter”).html(“您还有“

您好,我正在尝试限制contenteditable=“true”div中的文本:

var char=500;
$(“#计数器”).append(“您有“+char+”剩余的字符”);
$(“#编辑器”).keypress(函数(){
if($(this).text().length>char){
$(this.text($(this.text().substr(1));
}
var rest=char-$(this).text().length;
$(“#counter”).html(“您还有“+rest+”字符剩余。”);

如果(rest这里是我提供解决方案的地方。它缺少一块拼图,我将很快完成

这是你的电话号码

计数器现在可以正常工作。剩下的是如果用户超出限制,应该怎么做

如果你使用过twitter,你会发现他们不会去掉多余的字符,而是用红色的选项点亮这些字符,向用户显示这些字符不会出现在推特上。也许这样的替代方法会更好

下面是我使用的jQuery

const limit = 200;
rem = limit - $('#editor').text().length;
$("#counter").append("You have <strong>" + rem + "</strong> chars left.");
$("#editor").on('input', function () {
    var char = $('#editor').text().length;
    rem = limit - char;
    $("#counter").html("You have <strong>" + rem + "</strong> chars left.");
    console.log(char)
    console.log(rem);
    if (char >= 100) {
        $("#counter").css("color", "#ff7777");
    }
    else
        $("#counter").css("color", "#111111");
    if(char>200)
    {
        //add code to either remove extra chars or highlight them.
    }

});
const limit=200;
rem=限制-$(“#编辑器”).text().length;
$(“#计数器”).append(“您还有“+rem+”字符剩余”);
$(“#编辑器”).on('input',function(){
var char=$(“#编辑器”).text().length;
rem=极限-字符;
$(“#counter”).html(“您还有“+rem+”字符剩余”);
console.log(字符)
控制台日志(rem);
如果(字符>=100){
$(“#计数器”).css(“颜色”,“#ff7777”);
}
其他的
$(“#计数器”).css(“颜色”,“#111111”);
如果(字符>200)
{
//添加代码以删除额外字符或突出显示它们。
}
});

如果您看到我在('input',function()上使用了
$(“#editor”).on()
它将检查文本区域内的输入,而不是按键,以便用户在文本区域内复制粘贴文本。此外,我已经更改了计数器的工作方式。我相信您可以自己找出逻辑。

不幸的是,
input
事件完全不支持contenteditable元素例如,browsers.IE不支持它。maybe.limit()?但它似乎只对你有效,先生,你是一个救生员。我被卡住了,从来没有想到要使用
输入
事件。这一举为我解决了所有问题。
const limit = 200;
rem = limit - $('#editor').text().length;
$("#counter").append("You have <strong>" + rem + "</strong> chars left.");
$("#editor").on('input', function () {
    var char = $('#editor').text().length;
    rem = limit - char;
    $("#counter").html("You have <strong>" + rem + "</strong> chars left.");
    console.log(char)
    console.log(rem);
    if (char >= 100) {
        $("#counter").css("color", "#ff7777");
    }
    else
        $("#counter").css("color", "#111111");
    if(char>200)
    {
        //add code to either remove extra chars or highlight them.
    }

});