1、只能输入数字,当输入不符字符删除,光标位置不变
1 //只能输入数字 2 function onlyNumTrue(obj){ 3 var reg = /[^d]/g; 4 var pos = obj.selectionEnd;//获取光标位置 5 var val = obj.value; //获取input的值 6 //如果值存在不符字符将光标位置减一 7 if (reg.test(val)) { 8 pos = pos - 1; 9 } 10 $(obj).val(val.replace(/[^d]/g, '')); 11 obj.setSelectionRange(pos,pos);//设置光标位置 12 }
2、输入框内光标移动
1 <body> 2 <input type="text" name="CAL_COM_ID" id="CAL_COM_ID" onkeyup="cky(this)"/> 3 4 <input type="text" name="CAL_COM_ID1" id="CAL_COM_ID1" onkeyup="value=value.replace(/[^(()d&|)]/g,'')"/> 5 6 <script type="text/javascript"> 7 function cky(obj) 8 { 9 var t = obj.value.replace(/[^(()d&|)]/g,""); 10 if(obj.value!=t) 11 obj.value=t; 12 } 13 14 </script> 15 </body>
第一种写法写完后键盘左右键移动,光标可以移动;第二种写法光标不能移动。
3、使用replace时,不能控制光标的位置。
步骤:
1、获取光标位置:var pos = this.selectionEnd;//获取鼠标位置
2、设置光标位置:this.setSelectionRange(pos,pos);//设置鼠标位置
4、input输入框的事件监听
https://blog.csdn.net/yiifaa/article/details/52372022