上一篇讲了去和获取文本框内光标的位置。
这一篇讲讲如何设置文本框光标的位置。
先讲讲应用场景
为什么要设置文本框光标的位置呢?
在很多开发过程中,对于文本框的录入需要做一些特殊处理(例如,检测屏蔽字符等),如果使用了keyup事件,也就是在keypress之后的事件,对文本框的文本做了处理(例如replace了一些屏蔽字符等),光标往往被设置成到了文本的最后位置。这样的交互性不好。好的交互应该是对文本框中的文本做了特殊处理后,光标的位置应该还是原来的位置,这样才能保证用户输入的文本的流畅性(尤其是插入文本的时候)。
方法:
可以使用上一篇讲的先获取原来光标的位置。
处理文本。
设置光标位置。
代码实例:
<SCRIPT language=javascript>
function moveAtCaret(obj,n)
{
//将obj中光标向dirc方向移动n个字符
obj.focus();
var rng=document.selection.createRange();
rng.moveStart("character", n);
rng.select();
}
</SCRIPT>
<body οnlοad="moveAtCaret(show,5)">
<input id="show" value="1234567890">