如何通过javascript在文本区域中插入/删除字符
How to insert/delete characters in a text area via javascript
如何通过javascript在文本区域中添加/删除字符。假设我通过屏幕键盘进行输入。我需要模拟尽可能多的键,例如退格键、del、enter。更具挑战性的任务是为文本区域维护伪光标,并在从键盘接收输入时移动光标。
因此,如果我按向左箭头并且我有伪光标的轨迹,那么我需要将光标向后移动一个位置,然后从该位置插入/删除字符。
我希望我已经把自己说清楚了。任何帮助,不胜感激。
下面是一个读取和设置光标位置的函数:
function doGetCaretPosition (ctrl) {
var CaretPos = 0; // IE Support
if (document.selection) {
ctrl.focus ();
var Sel = document.selection.createRange ();
Sel.moveStart ('character', -ctrl.value.length);
CaretPos = Sel.text.length;
}
// Firefox support
else if (ctrl.selectionStart || ctrl.selectionStart == '0')
CaretPos = ctrl.selectionStart;
return (CaretPos);
}
function setCaretPosition(ctrl, pos){
if(ctrl.setSelectionRange)
{
ctrl.focus();
ctrl.setSelectionRange(pos,pos);
}
else if (ctrl.createTextRange) {
var range = ctrl.createTextRange();
range.collapse(true);
range.moveEnd('character', pos);
range.moveStart('character', pos);
range.select();
}
}
从这个网站得到它
要捕获击键,您可以使用jQuery,这是一个答案:
将 JavaScript 绑定到键
- 防止按下某个键时的默认处理
$('#textArea').keypress(function(event) {
//console.log("Key down:" + event.keyCode);
event.preventDefault();
processKey(event);
});
在进程键(事件)中进行处理
根据您的处理设置插入符号位置
function setCaretPosition(pos){
var target = document.getElementById("target");
if(target.setSelectionRange) {
target.focus();
target.setSelectionRange(pos,pos);
}
else if (target.createTextRange) {
var range = target.createTextRange();
range.collapse(true);
range.moveEnd('character', pos);
range.moveStart('character', pos);
range.select();
}
}
相关文章:
- 如何使用Jscript | JQuery在textArea中获取插入的|删除的字符串的索引和长度
- 如何使用Extendscript scriptui插入、更新、删除XML元素的值
- 在使用jquery插入之前删除元素
- 使用JQuery动态插入/删除字段
- jQuery 插入,然后淡出,然后删除
- 如何使用vanillaJS将mp4视频插入到具有特定维度的html文档中,播放2秒,然后删除节点
- JS-在JSON文件中插入、删除和添加数据
- 如何在文本输入中插入删除图标并实现删除文本
- 谷歌地图自动完成删除空格并在地址字符串中插入加号(+)
- 如何通过javascript在文本区域中插入/删除字符
- 当从ZeroMQ回调调用时,Meteor插入/删除操作引发异常
- 将内容插入/删除到给定位置的contenteditable元素中
- 插入/删除应答器
- 是否存在一种数据结构,具有高效的插入/删除,但具有位置排序
- 从DOM中插入删除元素
- 在区域四叉树中实现插入/删除/查询范围
- 当插入/删除新帖子时,转换其他帖子
- 如何创建屏幕阅读器可访问的 AJAX 区域和 DOM 插入/删除更新
- JQuery Steps -计算步数(当它们动态变化时),以便我可以在特定点插入/删除
- 为什么Microsoft IE在插入/删除时改变对象的键顺序?