Vue.js数字输入框组件使用方法详解


Posted in Javascript onOctober 19, 2019

本文实例为大家分享了Vue.js数字输入框组件的具体实现代码,供大家参考,具体内容如下

效果

Vue.js数字输入框组件使用方法详解

入口页 index.html

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="ie=edge">
 <title>数字输入框组件</title>
</head>
<body>
 <div id="app">
  <input-number v-model="value" :max="10" :min="0"></input-number>
 </div>
 <script src="https://unpkg.com/vue/dist/vue.js"></script>
 <script src="input-number.js"></script>
 <script src="index.js"></script>
</body>
</html>

数字输入框组件 input-number.js

function isValueNumber(value) {
 return (/(^-?[0-9]+\.{1}\d+$) | (^-?[1-9][0-9]*$) | (^-?0{1}$)/).test(value + '');
}


Vue.component('input-number',{
 template: '\
  <div class="input-number">\
   <input \
    type="text"\
    :value="currentValue"\
    @change="handleChange">\
   <button \
    @click="handleDown"\
    :disabled="currentValue <= min">-</button>\
   <button \
    @click="handleUp"\
    :disabled="currentValue >= max">+</button>\
  </div>',
 props: {
  max: {
   type: Number,
   default: Infinity
  },
  min: {
   type: Number,
   default: -Infinity
  },
  value: {
   type: Number,
   default: 0
  }
 },
 data: function () {
  return {
   currentValue: this.value
  }
 },
 watch: {
  currentValue: function (val) {
   this.$emit('input', val);
   this.$emit('on-change',val);
  },
  value: function (val) {
   this.updateValue(val);
  }
 },
 methods: {
  updateValue: function (val) {
   if(val > this.max)
    val = this.max;
   if(val < this.min)
    val = this.min;
   this.currentValue = val;
  },
  handleDown: function () {
   if(this.currentVaule <= this.min)
    return;
   this.currentValue -= 1;
  },
  handleUp: function () {
   if(this.currentVaule >= this.max)
    return;
   this.currentValue += 1;
  },
  handleChange: function (event) {
   var val = event.target.value.trim();

   var max = this.max;
   var min = this.min;

   if(isValueNumber(val)){
    val = Number(val);
    this.currentValue = val;

    if(val > max){
     this.currentValue = max;
    }else if(val < min){
     this.currentValue = min;
    }
   }else{
    event.target.value = this.currentValue;
   }
  }
 },
 mounted: function () {
  this.updateValue(this.value);
 }
});

根实例

var app = new Vue({
 el: '#app',
 data: {
  value: 5
 }
});

更多教程点击《Vue.js前端组件学习教程》,欢迎大家学习阅读。

关于vue.js组件的教程,请大家点击专题vue.js组件学习教程进行学习。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
浅析offsetLeft,Left,clientLeft之间的区别
Nov 30 Javascript
javascript获取四位数字或者字母的随机数
Jan 09 Javascript
JS基于ocanvas插件实现的简单画板效果代码(附demo源码下载)
Apr 05 Javascript
JS验证逗号隔开可以是中文字母数字
Apr 22 Javascript
深入理解JavaScript中的call、apply、bind方法的区别
May 30 Javascript
重新理解JavaScript的六种继承方式
Mar 24 Javascript
JQuery.dataTables表格插件添加跳转到指定页
Jun 09 jQuery
fetch 使用及如何接收JS传值
Nov 11 Javascript
解决Vue.js 2.0 有时双向绑定img src属性失败的问题
Mar 14 Javascript
微信小程序自定义多选事件的实现代码
May 17 Javascript
vue路由守卫,限制前端页面访问权限的例子
Nov 11 Javascript
JS函数参数的传递与同名参数实例分析
Mar 16 Javascript
JavaScript闭包相关知识解析
Oct 19 #Javascript
Vue.js组件通信之自定义事件详解
Oct 19 #Javascript
Vue.js自定义指令学习使用详解
Oct 19 #Javascript
Vue.js标签页组件使用方法详解
Oct 19 #Javascript
基于JavaScript获取base64图片大小
Oct 18 #Javascript
react MPA 多页配置详解
Oct 18 #Javascript
vue滚动插件better-scroll使用详解
Oct 18 #Javascript
You might like
PHP session常见问题集锦及解决办法总结
2007/03/18 PHP
php对数组排序的简单实例
2013/12/25 PHP
PHP中set error handler函数用法小结
2015/11/11 PHP
PHP的mysqli_ssl_set()函数讲解
2019/01/23 PHP
php写app用的框架整理
2019/09/29 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
2020/02/27 PHP
PHP 实现缩略图
2021/03/09 PHP
一个对于js this关键字的问题
2007/01/09 Javascript
use jscript with List Proxy Server Information
2007/06/11 Javascript
Lazy Load 延迟加载图片的jQuery插件中文使用文档
2012/10/18 Javascript
js+canvas绘制五角星的方法
2016/01/28 Javascript
浅谈JavaScript中面向对象的的深拷贝和浅拷贝
2016/08/01 Javascript
浅谈js常用内置方法和对象
2016/09/24 Javascript
Javascript 创建类并动态添加属性及方法的简单实现
2016/10/20 Javascript
利用Javascript实现简单的转盘抽奖
2017/02/13 Javascript
Angularjs实现上传图片预览功能
2017/09/01 Javascript
使用Bootstrap4 + Vue2实现分页查询的示例代码
2017/12/21 Javascript
iview在vue-cli3如何按需加载的方法
2018/10/31 Javascript
详解vue中async-await的使用误区
2018/12/05 Javascript
jQuery动态生成的元素绑定事件操作实例分析
2019/05/04 jQuery
Vue监听页面刷新和关闭功能
2019/06/20 Javascript
IE11下处理Promise及Vue的单项数据流问题
2019/07/24 Javascript
vue实现页面切换滑动效果
2020/06/29 Javascript
python调用外部程序的实操步骤
2019/03/04 Python
使用Python制作新型冠状病毒实时疫情图
2020/01/28 Python
python实现从尾到头打印单链表操作示例
2020/02/22 Python
RealTek面试题
2016/06/28 面试题
英智兴达软件测试笔试题
2016/10/12 面试题
英语文学专业学生的自我评价
2013/10/31 职场文书
北京大学自荐信范文
2014/01/28 职场文书
个人事迹材料怎么写
2014/12/30 职场文书
导游词之无锡丝业博物馆
2019/11/12 职场文书
python实现自动化群控的步骤
2021/04/11 Python
python通过函数名调用函数的几种方法总结
2021/06/07 Python
教你部署vue项目到docker
2022/04/05 Vue.js
一次SQL查询优化原理分析(900W+数据从17s到300ms)
2022/06/10 SQL Server