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);
}
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);
}
...全文
相关推荐
Vue中div contenteditable 的光标定位方法
如果存在,则聚焦到目标元素,创建一个Range对象,并使用`selectAllChildren`选择目标元素的所有子内容,最后使用`collapseToEnd`方法将光标移动到末尾。
通过javascript在光标处插入文本
当用户点击按钮时,我们将输入框中的文本插入到文本框中光标处。总结在本文中,我们讨论了如何使用Javascript在光标处插入文本。
javascript获得光标所在的文本框(text/textarea)中的位置
注意,`moveStart()`方法的第二个参数是负的文本长度,这是因为我们要从文本的末尾开始向前计算字符数。
JavaScript实现手机号码 3-4-4格式并控制新增和删除时光标的位置
其次,当用户进行新增或删除操作时,保持光标位置的正确是一个挑战。因为每次输入后,通过JavaScript对输入内容进行格式化时,光标往往会跳转到字符串的末尾。
JavaScript组件焦点与页内锚点间传值的方法
"JavaScript组件焦点与页内锚点间传值的方法"在JavaScript编程中,实现组件间的交互和数据传递是非常常见的需求。本实例主要探讨了如何在输入框与页内锚点之间通过JavaScript


