vue 保留小数点厚一位_h5上完美支持自定义输入小数点前多少位和小数点后多少位(vue)...
支持
弹出数字键盘
小数点前自定义最多输入几位(默认11位)
小数点后自定义最多输入几位(默认4位)
如果设置小数点后为0位,则不允许输入小数点
解决IOS弹出系统键盘收起后,页面不恢复
ref="number"
@input="input"
:placeholder="placeholder"
:value="value"
@blur="blur"
type="number">
export default {
props: {
value: { // 设置值
default: '',
type: null
},
integerDigits: { // 小数点前几位
default: 11,
type: Number
},
decimalDigits: { // 小数点后几位
default: 4,
type: Number
},
placeholder: { // 设置默认值
default: '',
type: String
}
},
data () {
return {
oldValue: this.value,
isDel: false, // 是否是删除操作
isDot: false // 是否是小数点输入操作
}
},
computed: {
},
components: {
},
created () {
},
methods: {
input (event) {
this.isDel = false
this.isDot = false
if (event.data === null) this.isDel = true
if (event.data === '.') this.isDot = true
let reg
if (this.decimalDigits > 0) {
reg = new RegExp(`(?!^0\\d)^(\\d{1,${this.integerDigits}}(\\.\\d{0,${this.decimalDigits}})?)?$`, 'g')
} else {
reg = new RegExp(`(?!^0\\d)^(\\d{1,${this.integerDigits}})?$`, 'g')
}
if (reg.test(event.target.value)) {
if (event.target.value !== '' || this.isDel) { // 如果不是因为后退,让值变空,就不改变旧值
this.oldValue = event.target.value
}
}
if (this.isDot) {
if ((event.target.value && /\./g.test(event.target.value)) || this.decimalDigits === 0) {
event.target.value = null // 多余的.强制刷新
}
}
event.target.value = this.oldValue
this.$emit('input', this.oldValue)
},
blur () {
this.resolveBug()
},
resolveBug(){
clearTimeout(this.timer)
this.timer=setTimeout(function(){
if(document.activeElement.tagName === 'INPUT' || document.activeElement.tagName === 'TEXTAREA'){
return
}
let result = 'pc';
if(/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) { // 判断iPhone|iPad|iPod|iOS
result = 'ios'
}else if(/(Android)/i.test(navigator.userAgent)) { // 判断Android
result = 'android'
}
if(result === 'ios' ){
document.activeElement.scrollIntoViewIfNeeded(true);
}
},10)
}
}
}
使用方式
:integerDigits="4"
:decimalDigits="2"
class="input"
v-model="value"/>
解决点:
不允许输入类似于 "0666", "0006"
不允许输入多余的 ".", 如输入 "3.02."
备注:如果对你有帮助,请帮忙点个赞
vue 保留小数点厚一位_h5上完美支持自定义输入小数点前多少位和小数点后多少位(vue)...相关推荐
- 金额保留小数点后两位方法
vue金额格式化的方法 封装全局js文件,并在main.js中引用 //global.js export default {install(Vue) {Vue.prototype.$moneyForm ...
- 前端保留两位有效数字_用js取小数点后两位的一些方法
用js取小数点后两位的一些方法,了解下? Javascript取float型小数点后两位,例22.123456取成22.12,如何做? 1.通过substring截取.function getnum( ...
- php保留一位小数_php保留小数点后两位的几种方法
这个是比较基础的东西了算是,虽说不难,但是希望能对一些人有帮助吧: 1,经常用到小数点后取几位,但不能进位的情况. 比如3.149569取小数点后两位,最后两位不能四舍五入.结果:3.14. 可以使用 ...
- php 小数点后6位,PHP保留小数点后几位的三种方法
php小数点后取两位/多位的方法. 方法一.经常用到小数点后取几位,但不能进位的情况. 比如3.149569取小数点后两位,最后两位不能四舍五入.结果:3.14. 可以使用函数floor. 该函数是舍 ...
- 经纬度5位数和6位数差多少_经纬度小数点后5位是多少米 经纬度小数点后4位精确到...
一般情况下,约1米精度. 经纬度坐标数值,不管小数度.还是度分秒(二者实质相同),都是角度数值,跟米.公里等距离单位不能进行简单折算,但可以分具体情况.比如: 经度0.00001度(十万分之一度,0° ...
- python小数点后任意位_Python计算开方、立方、圆周率,精确到小数点后任意位的方法...
Python计算的位数 在电脑上做了一个实验,看看python能计算到多少位,一下是结果. x = math.sqrt((3)) print ("%.53f"%(x)) print ...
- Python计算开方、立方、圆周率,精确到小数点后任意位
Python计算的位数 在电脑上做了一个实验,看看python能计算到多少位,一下是结果. x = math.sqrt((3)) print ("%.53f"%(x)) print ...
- C语言对浮点数变量小数点后两位的四舍五入
一般有两种方法,以变量a = 2.55为例说明 1.将a(2.55)放大10倍得到b(25.5),+0.5得到c(26.0),然后除以10得到d(2.60). 2.将a(2.55)放大100倍得到b( ...
- 格式化输出,浮点数e,f,g保留位数的计算方式不同,e,f :%.3e/f:取小数点后三位,g:%.3g总共有效位数为3,不包括小数点
格式化输出:format() format():把传统的%替换为{}来实现格式化输出 使用位置参数:就是在字符串中把需要输出的变量值用{}来代替,然后用format()来修改使之成为想要的字符串,位置 ...
最新文章
- IDEA JAVA gradle等常见工具/包 踩坑记录
- 基于ThinkPHP框架下登录登出权限控制(一).
- 以太网迎新增长 专家眼中的车载以太网及AVB技术
- Guava关于JAVA中系统组件之间交互通讯(非线程之间通讯)
- Ansible script模块使用示例
- html遮罩实例,给原生html中添加水印遮罩层的实现示例
- ABAP document read logic
- 跟我学 Java 8 新特性之 Stream 流(七)流与迭代器,流系列大结局
- java向上转型不能调用子类独有的方法
- javascript一些基础知识
- vue官方webpack模版多个打包环境搭建
- Mac和iPhone之间如何设置通用剪贴板?
- springboot开发微信公众号(一)创建、查询、删除菜单(附源码)
- 我写了一份操作系统词典送给你!
- 【阿里—云计算】从飞天系统到飞天2.0(核心组成:飞天洛神)
- 从零开始的单片机学习(二)
- 墨盒和墨仓打印机区别?
- win10打开计算机代码,win10打开应用提示0xe06d7363错误代码
- Windows10家庭版彻底关闭HyperV
- python降低图片分辨率怎么调_使用PIL调整图片分辨率
热门文章
- 【BZOJ2655】calc,dp+拉格朗日插值法
- 【BZOJ2151】种树,贪心+Splay乱搞
- 队列C++ | 用链表实现队列_2
- 中职计算机应用基础微课获奖视频,浅谈微课在中职计算机应用基础教学中的应用...
- java spi与api,SPI和API之间的区别?
- bzoj1923 [Sdoi2010]外星千足虫 压位+高斯消元
- 2017.10.10 取石子游戏 失败总结
- win7为什么打开桌面上的计算机很卡很慢,Win7系统运行不流畅卡半天才进入桌面的六种解决方法...
- 【英语学习】4000 Words 【V1】【U02】The Laboratory
- Intel Skylake (Client) 架构/微架构/流水线 (2) - 前端