Vue Input输入框两侧加减框内数字组件
NumberBox组件内容:
<template>
<div class="number-box" :class="{'box-disable': isDisabled}">
<!-- 此处为“减号”标志的图片 -->
<img class="btn-number" src="./reduce.png" @click="onReduce" />
<div class="number-container">
<Input v-model="strVal" @on-enter="onEnter" :disabled="isDisabled" @on-blur="onBlur" placeholeder="请输入范围" />
<div class="unit" v-text="米" />
</div>
<img class="btn-number" src="./recrease.png" @click="onIncrease" />
</div>
</template> <script>
export default {
props: {
isDisabled: {
type: Boolean,
default: false
},
curVal: {
type: Number,
default: 50
},
minVal: {
type: Number,
default: 50
},
maxVal: {
type: Number,
default: 1000
}
},
data() {
return {
numVal: this.curVal,
strVal: this.curVal.toString()
}
},
methods: {
onEnter() {
if(Number(this.strVal) <= this.minVal) {
this.strVal = this.minVal.toString();
this.numVal = this.minVal;
}
if(Number(this.strVal) >= this.maxVal) {
this.strVal = this.maxVal.toString();
this.numVal = this.maxVal;
} this.numVal = Number(this.strVal);
this.$emit("getNumber", this.numVal);
},
onBlur() {
this.nextTick(() => {
this.onEnter();
});
},
onReduce() {
if(Number(this.strVal) > this.minVal) {
this.strVal = Number(this.strVal);
this.numVal -= 1;
this.strVal = this.numVal.toString();
this.$emit("getNumber", this.numVal);
}
},
onIncrease() {
if(Number(this.strVal) < this.maxVal) {
this.strVal = Number(this.strVal);
this.numVal += 1;
this.strVal = this.numVal.toString();
this.$emit("getNumber", this.numVal);
}
},
resetCurVal(val) {
this.strVal = val.toString();
this.numVal = val;
this.$emit("getNumber", this.numVal);
}
}
}
</script> <style lang="less" scoped>
/*数字输入框*/
.box-disable {
pointer-events: none;
color: #686868 !important;
}
.number-box {
color: #FFF;
dispaly: felx;
flex-flow: row nowrap;
justify-content: space-between;
.btn-number {
cursor: pointer;
margin-top: 7px;
width: 15px;
height: 15px;
}
.number-container {
display: flex;
flex-flow: row nowrap;
justify-content: space-between;
flex-grow: 1;
margin: 0 10px;
background: #1F2124;
.unit {
position: absolute;
right: 35px;
}
}
}
</style>
以下为引用number-box.vue组件的index.vue内容:
<template>
<div class="main-container">
<div class="" @click="onBackOff">
</div>
<number-box ref="numRange" :curVal="currentVal" :minVal="50" :maxVal=“1000” @getNumber="getNumber" />
</div>
</template>
<script>
export default {
data() {
return {
currentVal: 30
}
},
methods: {
onBackOff() { //重置子组件输入框中的内容
this.$refs.numRange.resetCurVal(50);
},
getNumber(val) {
console.log("This is value of input ", val);
}
}
}
</script>
Vue Input输入框两侧加减框内数字组件的更多相关文章
- js实现输入框数量加减【转】
		
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
 - Android 自定义控件 EditText输入框两边加减按钮Button
		
自己封装的一个控件:EditText两边放加减按钮Button来控制输入框的数值 Demo 下载地址: 第一版:http://download.csdn.net/detail/zjjne/674086 ...
 - 微信小程序优化:实现picker组件中input输入框禁止输入,而只能通过picker组件选择日期
		
原来的代码如下: <view class="right"> <picker mode="date" value="{{mat ...
 - vue input输入框长度限制
		
今天在开发登录页时,需要设置登录输入框的长度,输入类型为number <input type="number" maxlength="11" placeh ...
 - vue input输入框联想
		
以下是示例,样式可以自己修改.最后是效果图,其实也挺简单的,主要是用了watch监控input输入值的变化,如果数据是请后端请求可以,先请求数据. <template> <div c ...
 - input标签获取焦点时文本框内提示信息清空背景颜色发生变化
		
<input type="text" id="username" onfocus="myFocus(this,'#f4eaf1')" ...
 - VUE -input输入框字母转大写
		
示例: 输入自动转--->大写 <input type="text" placeholder="请输入证件号码" maxlength="1 ...
 - vue 如何实现 Input 输入框模糊查询方法
		
原理:原生js的indexOf() 方法,该方法将从头到尾地检索数组,看它是否含有对应的元素.开始检索的位置在数组 start 处或数组的开头(没有指定 start 参数时).如果找到一个 item, ...
 - 购物车数字加减按钮HTML+CSS+JS(有需要嫌麻烦的小伙伴拿走不谢)
		
之前在写详情页的时候,如下图 因为自己嫌麻烦,就去看其他网站是怎么写的,想直接拿来用,后来看来看去觉得写得很麻烦,于是最后还是决定自己写,附上HTML+CSS+JS代码,一条龙一站式贴心服务2333 ...
 
随机推荐
- Ubuntu 16.04 环境下配置apache2.4 + php5.6
			
相信用惯了Windows的朋友一开始接触Linux是很崩溃的,因为很多东西都是通过命令行来完成的,包括安装绝大多数的开发工具以及环境,那么在Ubuntu下其实可以直接通过apt-get指令来安装apa ...
 - vue中使用video插件vue-video-player
			
一.安装插件 npm install vue-video-player --save 二.配置插件 在main.js中全局配置插件 import VideoPlayer from 'vue-video ...
 - Springboot 使用过滤器进行加密解密(二)
			
之前写过一篇关于过滤器实现加密解密功能的文章,但是在实际开发业务中发现,还是有一些问题的,在此特地说明. 第一:过滤器走两遍的问题: 1.过滤器上,添加了两个注解 第一个:@Compent 将此F ...
 - linux systemd详解
			
CentOS 7 使用systemd替换了SysV.Systemd目的是要取代Unix时代以来一直在使用的init系统,兼容SysV和LSB的启动脚本,而且够在进程启动过程中更有效地引导加载服务. s ...
 - 让你真正了解Java(纯干货)
			
“你学习一门技术的最佳时机是三年前,其次是现在.”这句话对于哪一种行业都很适用,如果你已经学习过Java,那么恭喜你你很有先见之明,如果你并不了解Java,这篇文章带你快速掌握Java的几个核心知识点 ...
 - Linux----------mysql基础
			
目录 一.数据库介绍 1.1 数据库的优点 1.2 数据库的基本功能 1.3数据库的类型 1.4 关系型数据的组成 1.5 关系型数据库的常用组件 1.6 SQL语句 1.7 mysql命令使用 1. ...
 - 用汇编语言角度来理解C语言的一些问题
			
在汇编的世界里,整数的存在和表示是没有有符号数和无符号数之分的,都是用数的补码表示,有无符号的计算是靠指令来进行确定.如JA/JB是用于无符号数的跳转指令,而JG/JL则是用于有符号数的指令.汇编中的 ...
 - js设置,获取cookie
			
function setCookie(c_name,value,expireMinutes){ var exdate=new Date(); exdate.setMinutes(exdate.getM ...
 - 运维wiki
			
意识 1.责任心 要有 owner 意识.运维是线上产品的首要负责人,出现故障都默认是运维的故障,要推动改进. 2.细心 要有敏感的风险意识,稳定和安全是运维的最高责任 3.上进心 要善于学习,不断反 ...
 - eclipse中解决git分支合并冲突
			
冲突场景: 在master分支上有文件student.py. 在master上增新一个dev分支 在dev分支上修改文件student.py.增加函数def d():,并commit; 在master ...