第一步:自定义组件MyNumberInput.vue
<template>
<input class="numberInput" type="number" :placeholder="placeholder" v-model="inputData" @keydown="keydownFn" />
</template>
<script>
export default {
props: {
point: {
default: 0
},
max: Number,
placeholder: String,
value: {
default: null
},
},
computed: {
inputData: {
get:function() {
return this.value;
},
set:function (value) {
let val = this.$el.value;
let len = val.length; // 若输入08,变为8
if(len===2 && val.charAt(0)===0 && val.charAt(1)!=='.'){
this.$el.value = val.charAt(1);
this.setParentModeVal(this.$el.value);
return;
} // 禁止输入多个小数点
if(Math.abs(this.value) > 0 && val==='' && value ===''){
if(this.keyDownDel){
this.$el.value = '';
}else {
this.$el.value = this.value;
}
this.setParentModeVal(this.$el.value);
return ;
} // 处理输入“点、e、+、-等被识别为数字字符
if(this.value === '' && val === '' && value === ''){ //字母类非数字输入都为'';
this.$el.value = '';
this.setParentModeVal('');
return ;
} // 保留小数
if(val){
let pointIndex = val.indexOf('.');
if(this.point===0 && pointIndex!== -1){
this.$el.value = val.substr(0, pointIndex);
this.setParentModeVal(this.$el.value);
return ;
}
if(pointIndex>0 && (len - pointIndex)>(this.point+1)){
this.$el.value = val.substr(0,pointIndex + this.point +1);
this.setParentModeVal(this.$el.value);
return ;
}
} // 最大值
if(this.max>0 && val>this.max){
this.$el.value = val.substr(0,len-1);
this.setParentModeVal(this.$el.value);
return;
} this.setParentModeVal(val);
return;
}
}
},
data() {
return {
keyDownDel: false,// 判断键盘输入值
}
},
methods: {
setParentModeVal(value){
this.$emit('input', value);
},
keydownFn(event){
let e = event || window.event;
if(e.keyCode===8||e.keyCode===46){ //Backspace || Delete
this.keyDownDel = true;
}else {
this.keyDownDel = false;
}
}
},
}
</script>
<style> </style>
第二步:引入,注册

第三步:使用

<my-number-input style="width: 100%" @mousewheel.native.prevent :point="2"  v-model="scope.row.yCoordinate"></my-number-input>
												

vue input框type=number 保留两位小数自定义组件的更多相关文章

  1. vue input框数字后保留两位小数正则

    <el-input type="text" v-model.trim="ruleForm2.marketPrice" maxlength="10 ...

  2. js 保留两位小数 input要求是数字框,

    要求:input文本框只能输入数字,且只保留两位小数 问题:若设置input的  type="number" ,js处理部分若用到parseFloat方法处理,结果是string类 ...

  3. 数字千分位处理,number.js,js保留两位,整数强制保留两位小数

    杨龙飞 杨龙飞 杨龙飞 杨龙飞 杨龙飞 杨龙飞 官方文档:https://www.customd.com/articles/14/jquery-number-format-redux 1.千分位 $. ...

  4. JS限制input输入的为数字并且有小数的时候最多保留两位小数

    JS限制input用户输入的为数字并且有小数的时候最多保留两位小数,代码如下: html部分: <input type="number" onkeypress="r ...

  5. 【前端开发】限制input输入保留两位小数

    <input type="text" name='amount' id="cash_num" placeholder="请输入金额" ...

  6. ToString()格式和用法大全,C#实现保留两位小数的方法

    C,货币,2.5.ToString("C"),¥2.50.D,十进制数,25.ToString("D5"),00025.E,科学型,25000.ToString ...

  7. [Java]求文件大小并保留两位小数(文件大小是一个长整型数单位是Byte)

    前言 为了获得一堆apk的大小,并与人类友好方式显示.本来是打算用以下方法,到时不能具体到保留两位小数. org.apache.commons.io.FileUtils.byteCountToDisp ...

  8. js保留两位小数方法总结

    js保留两位小数方法总结 最近在做结算系统,经常需要用到金额保留两位小数,刚开始我一直用的是Angular中的过滤器number |2,但是,这无法满足我的需求.问题是,当用户离开文本框时,我需要将用 ...

  9. jQuery EasyUI/TopJUI基本的数字输入框(保留两位小数,带前缀后缀...)

    jQuery EasyUI/TopJUI基本的数字输入框(保留两位小数,带前缀后缀...) numberbox(数值输入框) HTML required:必填字段,默认为false:prompt:显示 ...

随机推荐

  1. dubbo远程服务调用和maven依赖的区别

    dubbo:跨系统通信.比如:两个系统,一个系统A作客户端,一个系统B作服务器, 服务器B把自己的接口定义提供给客户端A,客户端A将接口定义在spring中的bean.客户端A可直接使用这个bean, ...

  2. 开启关闭mysql服务

    1.Windows下 启动服务 mysqld --console 或 net start mysql 关闭服务 mysqladmin -uroot shudown 或 net stop mysql   ...

  3. HDU 3622 Bomb Game(2-sat)

    Bomb Game Time Limit: 10000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  4. window.location.search 为何在url 带# 号时获取不到 ?

    我们在获取url参数时,会常常用到截取参数 getUrlParam(name) { const reg = new RegExp('(^|&)' + name + '=([^&]*)( ...

  5. setleds - 设置键盘 led 标志

    总览 (SYNOPSIS) setleds [-v] [-L] [-D] [-F] [{+|-}num] [{+|-}caps] [{+|-}scroll] 描述 (DESCRIPTION) setl ...

  6. IPv6 关于路由器配置静态IPv6路由的命令

    今天在学习路由器配置ipv6 的时候遇到了一点疑惑 一条命令为:ipv6 route FE80:0202::/32 serail 0/1 201 一条命令为:ipv6 route FE80:0202: ...

  7. 在脚本中使用set命令调试脚本

    当脚本文件较长时,可以使用set命令指定调试一段脚本.在脚本中使用set -x命令开启调式模式:使用set +x命令关闭调式模式. 例如: #!/bin/bash #Scriptname: greet ...

  8. 1、Fiddler 打断点 bpu

    一.fiddler 设置断点,可修改以下请求 可以修改HTTP请求头信息,如修改cookie,user-agent等 可以修改请求数据,突破表单限制,提交任意数字,如充值最大金额100,可修改为100 ...

  9. springboot配置redis+jedis,支持基础redis,并实现jedis GEO地图功能

    Springboot配置redis+jedis,已在项目中测试并成功运行,支持基础redis操作,并通过jedis做了redis GEO地图的java实现,GEO支持存储地理位置信息来实现诸如附近的人 ...

  10. List Comprehension ()(一)

    >>> L = [1,2,3,4,5] >>> L = [x+10 for x in L] >>> L [11, 12, 13, 14, 15] ...