这是一个数字密码,要能够智能的跳转到文本的某个位置,就需要通过JS来控制跳转!

1.onkeyup监听

<input class="put" id="number-password-input" type="tel" maxlength="12" tabindex="6" onkeyup="dealKeyup(this);">

2.智能判断

// 光标定位
function dealKeyup(that) {
var input_val = $(that).val();
var input_arr = input_val.split("-");
for(var i=0;i<input_arr.length;i++) {
if (input_arr[i] == ' ') {
setCaretPosition(that, i*2);
return;
}
}
}

这个方法,获取输入框的值,处理成数组。遍历数组,找寻到第一个为空的位置,定位到这个位置。

3.处理光标定位

// 获取光标位置
function getCursortPosition(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();
}
}

亲测可用!

方法论:没想到js还可以这么玩定位,有意思!

最新文章

  1. JS 继承总结
  2. 【算法和数据结构】_11_小算法_itoa、ftoa及字符串倒置
  3. 接口API测试和返回值JSON解析的插件
  4. 基础笔记6(exception)
  5. 防止用户误操作退出APP的处理
  6. communicate with other processes, regardless of where they are running
  7. 如何kill掉TaobaoProtect.exe
  8. 监听指定端口数据交互(HttpListenerContext )
  9. Python学习(一) Python安装配置
  10. softlayer
  11. VIM在文件夹中查找
  12. Uva - 400 - Unix ls
  13. 【395】yield 和 yield from
  14. 【Java】浅谈HashMap
  15. Linux配置ssh服务和XShell连接Linux
  16. 力扣(LeetCode) 1010. 总持续时间可被 60 整除的歌曲
  17. Android getScrollX()详解
  18. 【Python】安装geocoder
  19. php 应用 bootstrap-fileinput 上传文件 插件 操作的方法
  20. SaltStack 批量分发目录

热门文章

  1. (2016北京集训十三)【xsy1533】mushroom - bitset
  2. UNIX系统高级编程——第五章-标准I/O库-总结
  3. Solr全文检索引擎配置及使用方法
  4. angular.js和vue.js中实现函数去抖(debounce)
  5. CAD二次开发(01)-绘制直线
  6. Maven项目的坐标GroupId和ArtifactId
  7. 2015 Multi-University Training Contest 2 hdu 5308 I Wanna Become A 24-Point Master
  8. BZOJ 1379 模拟退火
  9. 51Nod 最长的循环节(打表预处理)
  10. Linux下安装使用MySQL