最近h5开发,用到了金额输入框,但是又没有定制金额键盘,所以就用type="number"调用系统的数字键盘。
需求需要,用户是不能输入除数字以为其它的内容的,金额最多只能输入到小数点后的两位,。
所以研究了一些,number键盘,当用户输入非数字时,取到的value为空,但是输入框展现的还是用户所输入的内容。
例如 :用户输入a,渠道的value 为空,但是输入框展现的为a;特例(当用户输入2.时,取到的值为2,输入框展现为2.)
<!DOCTYPE html><html><head><title>demo5</title><meta charset="utf-8"><meta name="apple-mobile-web-app-capable" content="yes" /><meta name="viewport"content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" /><style type="text/css"></style></head><!-- 禁用复制 ,除去一些不必要的因素 --><body onpaste="return false"><div><input type='number' id = 'number'></div></body><script type="text/javascript">var me = window;
(function init(){
me.number = getId('number');
me.n = '';
initEvent(); function initEvent(){
me.number.addEventListener('keyup', number, false);
}function getId(id){return document.getElementById(id);
}function number(){//金额, console.log(this.value);if(this.value == ''){//校验,用户输入后,输入框的值是否为数字,当不为数字时,取到的为空this.value='';this.value = me.n;return}if(!/^\d{0,9}\.{0,1}(\d{1,2})?$/.test(this.value)){//校验不超过两位小数this.value = me.n;
}if(window.event.keyCode != 8){if(this.value%1==0 && me.n==this.value){//当用户按下非删除键时,新值和旧值相同,旧值为整数return}if(me.n.indexOf(".")>-1 && me.n==this.value){//当用户按下非删除键时,新值和旧值相同,旧值为小数this.value='';this.value = me.n;return}
}else{if(me.n.indexOf(".")>-1 && this.value.indexOf(".")<0){//当按下删除时,删掉小数点时 me.n = this.value;return}
}
me.n = this.valueif(me.n.indexOf(".")>0){this.value = me.n;
}
}
}())</script></html>可以试一下,这样几可以限制用户的输入
以上就是H5对number输入框处理的实例的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号