Javascript contenteditable=";“真的”;div字符限制
您好,我正在尝试限制contenteditable=“true”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(“您还有“
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.
}
});