vue input框type=number 保留两位小数自定义组件
第一步:自定义组件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 保留两位小数自定义组件的更多相关文章
- vue input框数字后保留两位小数正则
<el-input type="text" v-model.trim="ruleForm2.marketPrice" maxlength="10 ...
- js 保留两位小数 input要求是数字框,
要求:input文本框只能输入数字,且只保留两位小数 问题:若设置input的 type="number" ,js处理部分若用到parseFloat方法处理,结果是string类 ...
- 数字千分位处理,number.js,js保留两位,整数强制保留两位小数
杨龙飞 杨龙飞 杨龙飞 杨龙飞 杨龙飞 杨龙飞 官方文档:https://www.customd.com/articles/14/jquery-number-format-redux 1.千分位 $. ...
- JS限制input输入的为数字并且有小数的时候最多保留两位小数
JS限制input用户输入的为数字并且有小数的时候最多保留两位小数,代码如下: html部分: <input type="number" onkeypress="r ...
- 【前端开发】限制input输入保留两位小数
<input type="text" name='amount' id="cash_num" placeholder="请输入金额" ...
- ToString()格式和用法大全,C#实现保留两位小数的方法
C,货币,2.5.ToString("C"),¥2.50.D,十进制数,25.ToString("D5"),00025.E,科学型,25000.ToString ...
- [Java]求文件大小并保留两位小数(文件大小是一个长整型数单位是Byte)
前言 为了获得一堆apk的大小,并与人类友好方式显示.本来是打算用以下方法,到时不能具体到保留两位小数. org.apache.commons.io.FileUtils.byteCountToDisp ...
- js保留两位小数方法总结
js保留两位小数方法总结 最近在做结算系统,经常需要用到金额保留两位小数,刚开始我一直用的是Angular中的过滤器number |2,但是,这无法满足我的需求.问题是,当用户离开文本框时,我需要将用 ...
- jQuery EasyUI/TopJUI基本的数字输入框(保留两位小数,带前缀后缀...)
jQuery EasyUI/TopJUI基本的数字输入框(保留两位小数,带前缀后缀...) numberbox(数值输入框) HTML required:必填字段,默认为false:prompt:显示 ...
随机推荐
- css浮动以及清除
首先要知道,div是块级元素,在页面中独占一行,自上而下排列,也就是传说中的流.如下图: 可以看出,即使div1的宽度很小,页面中一行可以容下div1和div2,div2也不会排在div1后边,因为d ...
- create Excel file - snippet
http://www.codepal.co.uk/show/Line_breaks_lost_and_br_tags_show_when_exporting_to_Excel_file Protec ...
- 百度网盘不限速-Motrix
目录: Windows 下使用 Motrix Mac 下使用 BaiduNetdiskPlugin-macOS Mac 下使用 Motrix Windows 系统 Motrix 1. Google ...
- A Bite Of React(1)
react: component and views : produce html abd add them on a page( in the dom) <import React from ...
- 自增主键与UUID的优缺点
自增主键 自增ID是在设计表时将id字段的值设置为自增的形式,这样当插入一行数据时无需指定id会自动根据前一字段的ID值+1进行填充.在MySQL数据库中,可通过sql语句AUTO_INCREMENT ...
- 空类的sizeof,有一个虚函数的类的sizeof
今天面试,忽然被问到这个题目,查了一下果然有欸. #include <iostream> using namespace std; class A { }; class B { publi ...
- rabbitmq-5-案例2-简单的案例+exchange
Exchange交换机: sendMessage端,发送消息到Exchage1.2, 然后交换机通过路由键,将消息转发给队列queue中,最后客户端从队列中获取消息 交换属性: name:名称 typ ...
- websocket(python)
1.websocket-server https://github.com/google/pywebsocket git clone https://github.com/google/pywebso ...
- 作业(二)—python实现wc命令
Gitee地址:https://gitee.com/c1e4r/word-count(为什么老师不让我们用github) 0x00 前言 好久没发博客了,感觉自己的学习是有点偷懒了.这篇博客也是应专业 ...
- android jni控制gpio (rk3288)
1.添加驱动程序 2.编写jni c程序编译为库给java调用 3.app调用jni静态链接库操作底层驱动 1.添加驱动程序 修改/work/rk3288/firefly-rk3288_android ...