div模拟文本输入框做字数限制 用substr限制 当字数达到后光标会回到开头 用range对象限制但是删除

Posted blucelee

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了div模拟文本输入框做字数限制 用substr限制 当字数达到后光标会回到开头 用range对象限制但是删除相关的知识,希望对你有一定的参考价值。

<div class="textarea textareaplace" id="userinfo" contenteditable="true" onkeydown="keyD(this);" onkeyup="keyAction(this);" oncopy="keyCop();" onpaste="keyPas()"></div>

js代码
var textbox = document.getElementById(‘userinfo‘),
g_selectNum=0,
sel = window.getSelection(),
range = document.createRange();
function keyD(obj){   //按下事件
var a=textbox.innerhtml;

var textA=textbox.innerText.substr(0,20);
range.selectNodeContents(textbox);  //将div节点内容加进range内
range.collapse(false);
sel.removeAllRanges();
sel.addRange(range);     //j将range对象加入文本域
}
function keyPas(){
var textA=textbox.innerText.substr(0,20);
setTimeout(function(){
var a=textbox.innerHTML;
textbox.innerText=a.replace(/<span.*">|</span>/g, "");   //将复制内容中span标签替换
range.selectNodeContents(textbox);
range.collapse(false);
sel.removeAllRanges();
sel.addRange(range);
},300)
};
function keyCop(obj){
var textA=textbox.innerText.substr(0,20);
a_num=textA.length;
var selectCon=sel.toString();
g_selectNum=selectCon.length;
}
function keyAction(obj) {
var textA=textbox.innerText.substr(0,20);
a_num=textA.length;
a_arr[1]=a_num;
textbox.innerText=textA;
range.selectNodeContents(textbox);
range.collapse(false);
sel.removeAllRanges();
sel.addRange(range);
}

以上是关于div模拟文本输入框做字数限制 用substr限制 当字数达到后光标会回到开头 用range对象限制但是删除的主要内容,如果未能解决你的问题,请参考以下文章

限制input 内部字数

文字编辑框,如何限制行数,和每行的字数?

输入框输入字数限制

JQUERY 一个文本框,限制只能输入百分比或者货币类型

怎么实现CSS限制字数,超出部份显示点点点

实现文本框中输入限制字数的效果