赋值时能否防止输入端插入符号跳转到末尾?
Is it possible to prevent jumping caret in input to the end when assigning value?
我有一个<input>
:
<input type="text" onKeyUp="if(!(event.keyCode>36&&event.keyCode<41)){this.value=check(this.value)}">
和动作:
function check(num){
num=num.replace(/num/g,"Nº");
return num;
}
JSFIDDLE
问题是当我赋值输入插入符号跳转到结束。是否有可能防止它-我希望它留在我最初点击的地方?
不是JavaScript忍者所以我不知道这样做是否正确但你可以简单地在替换值
后更新插入符号的位置在这个例子中,check
函数接受输入作为参数:
function check(num) {
var selectionStart = num.selectionStart;
num.value = num.value.replace(/num/g,"Nº");
num.selectionStart = selectionStart;
num.selectionEnd = selectionStart;
}
您可以在这个JSFiddle
中看到一个工作示例。这可能会导致奇怪的行为,如果你试图用键盘选择整个文本(选择将消失)。我认为您应该使键代码约束更严格一些,以避免这种情况。
相关文章:
- 插入符号到底是什么
- 将插入符号位置移动到ContentEditable<DIV>
- 为更改的输入返回插入符号位置的逻辑
- 内容可编辑DIV单击/插入符号设置
- 在contentEditable元素中居中占位符插入符号
- 获取插入符号相对于行可见起点的位置
- JavaScript 插入符号位置
- 链接内的内容可编辑块,如何防止重定向,但让文本选择插入符号位置更改
- 如何更改文本区域中闪烁的光标/插入符号
- Caret函数没有'如果插入符号在最后一个位置,就不能正常工作
- TinyMCE微笑符号插件-更改插入的微笑符号的宽度
- 如何使用javascript获取&使用字符偏移量设置插入符号位置
- text使用shift键和箭头键时的区域插入符号位置
- Rangy和IE8-在段落末尾的元素后面放置插入符号
- HTML Texeare 插入符号控件使用左、右、下、上、主页和结束虚拟按钮
- 在插入符号位置获取DOM元素
- 单击时获取文本区域中插入符号的位置
- 正则表达式替换为插入符号
- 隐藏插入符号-插入点-输入栏-闪烁的垂直小栏
- 我如何检测一个表情符号插入事件从OS X字符查看器和iOS表情符号键盘在Javascript/Redactor