input输入框校验

1、只能输入数字,当输入不符字符删除,光标位置不变

 //只能输入数字
function onlyNumTrue(obj){
var reg = /[^\d]/g;
var pos = obj.selectionEnd;//获取光标位置
var val = obj.value; //获取input的值
//如果值存在不符字符将光标位置减一
if (reg.test(val)) {
pos = pos - 1;
9 }
$(obj).val(val.replace(/[^\d]/g, ''));
obj.setSelectionRange(pos,pos);//设置光标位置
}

2、输入框内光标移动

 <body>
<input type="text" name="CAL_COM_ID" id="CAL_COM_ID" onkeyup="cky(this)"/> <input type="text" name="CAL_COM_ID1" id="CAL_COM_ID1" onkeyup="value=value.replace(/[^(\(\)\d\&\|)]/g,'')"/> <script type="text/javascript">
function cky(obj)
{
var t = obj.value.replace(/[^(\(\)\d\&\|)]/g,"");
if(obj.value!=t)
obj.value=t;
} </script>
</body>

第一种写法写完后键盘左右键移动,光标可以移动;第二种写法光标不能移动。

3、使用replace时,不能控制光标的位置。

步骤:

1、获取光标位置:var pos = this.selectionEnd;//获取鼠标位置

2、设置光标位置:this.setSelectionRange(pos,pos);//设置鼠标位置

4、input输入框的事件监听

https://blog.csdn.net/yiifaa/article/details/52372022

上一篇:Java 多线程 死锁 隐性死锁 数据竞争 恶性数据竞争 错误解决深入分析 全方向举例


下一篇:浙大 pat 1047题解