JavaScript实现文本框光标定位至末尾的兼容方案
作者:像素漫游时间:2026-10-26 23:03:57浏览:322
本文介绍如何在JavaScript中实现文本框失去焦点后,将光标自动定位到文本末尾。通过区分IE与非IE浏览器,分别采用focus()与createTextRange()方法解决兼容性问题,并结合ztree模糊搜索场景,优化用户交互体验。
JavaScript实现文本框光标定位至末尾的兼容方案
具体实现代码如下:
<script>
// 当输入框失去焦点后,使文本内容获得焦点,并将光标移动至最后一个字符之后
function myfocus(myid) {
if(isNav){
document.getElementById(myid).focus();// 获取焦点
}else{
setFocus.call(document.getElementById(myid));
}
}
var isNav = (window.navigator.appName.toLowerCase().indexOf("netscape")>=0);
var isIE = (window.navigator.appName.toLowerCase().indexOf("microsoft")>=0);
function setFocus() {
var range = this.createTextRange(); //建立文本选区
range.moveStart('character', this.value.length); //选区的起点移到最后去
range.collapse(true);
range.select();
}
</script> 示例说明:
本示例基于ztree组件的模糊搜索功能进行演示。
在初始状态下,所有树节点均处于折叠状态。当用户输入搜索关键词并触发查询时,系统会展开包含匹配内容的父节点。此操作会导致当前input输入框失去焦点,从而影响用户体验。为解决这一问题,在父节点展开后,需要重新让input输入框获得焦点。如果仅使用focus()方法,光标会默认出现在文本框的最前端,这并非理想效果。通过调用上述封装的代码,可以实现查询后光标自动定位到已输入文字的末尾位置。
作者最新文章
D3.js 处理大规模数据点的性能优化策略
2026-11-05 15:37:25
JS实现网页摄像头实时扫码:结合getUserMedia与jsQR教程
2026-11-05 15:27:28
D3.js v5 迁移到 v7 的 API 变更与注意事项
2026-11-05 11:57:17
使用 animate.js 实现多元素协同的序列动画
2026-11-04 22:27:53
JS拖拽排序时怎么添加平滑动画效果?FLIP技术实战
2026-11-04 10:12:22
