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 相关文章推荐
Jquery iframe内部出滚动条
Feb 11 Javascript
javascript中String类的subString()方法和slice()方法
May 24 Javascript
JQuery插件fancybox无法在弹出层使用左右键的解决办法
Dec 25 Javascript
Javascript字符串浏览器兼容问题分析
Dec 01 Javascript
js设置document.domain实现跨域的注意点分析
May 21 Javascript
js简单设置与使用cookie的方法
Jan 22 Javascript
Bootstrap进度条组件知识详解
May 01 Javascript
javascript使用递归算法求两个数字组合功能示例
Jan 03 Javascript
ionic 自定义弹框效果
Jun 27 Javascript
react高阶组件经典应用之权限控制详解
Sep 07 Javascript
TypeScript类型声明书写详解
Aug 28 Javascript
微信小程序基础教程之echart的使用
Jun 01 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像数组一样存取和修改字符串字符
2014/03/21 PHP
PHP正则表达式过滤html标签属性(DEMO)
2016/05/04 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
2020/03/27 PHP
js 父窗口控制子窗口的行为-打开,关闭,重定位,回复
2010/04/20 Javascript
原生js实现的贪吃蛇网页版游戏完整实例
2015/05/18 Javascript
浅析Ajax语法
2016/12/05 Javascript
JS中传递参数的几种不同方法比较
2017/01/20 Javascript
Express与NodeJs创建服务器的两种方法
2017/02/06 NodeJs
javascript作用域链与执行环境详解
2017/03/25 Javascript
浅谈vue中.vue文件解析流程
2018/04/24 Javascript
node.js使用免费的阿里云ip查询获取ip所在地【推荐】
2018/09/03 Javascript
浅谈vue后台管理系统权限控制思考与实践
2018/12/19 Javascript
layui添加动态菜单与选项卡 AJAX请求的例子
2019/09/25 Javascript
微信小程序实现选择地址省市区三级联动
2020/06/21 Javascript
vue中activated的用法
2021/01/03 Vue.js
详解Vue.js 可拖放文本框组件的使用
2021/03/03 Vue.js
[28:07]完美世界DOTA2联赛PWL S3 Phoenix vs INK ICE 第二场 12.13
2020/12/17 DOTA
在PyCharm环境中使用Jupyter Notebook的两种方法总结
2018/05/24 Python
python实现字符串中字符分类及个数统计
2018/09/28 Python
浅谈python3.x pool.map()方法的实质
2019/01/16 Python
浅谈Pycharm中的Python Console与Terminal
2019/01/17 Python
Python 图像处理: 生成二维高斯分布蒙版的实例
2019/07/04 Python
python celery分布式任务队列的使用详解
2019/07/08 Python
django 自定义过滤器(filter)处理较为复杂的变量方法
2019/08/12 Python
基于Python实现ComicReaper漫画自动爬取脚本过程解析
2019/11/11 Python
学习Python列表的基础知识汇总
2020/03/10 Python
医院护士的求职信范文
2013/12/26 职场文书
大学生实习感言
2014/01/16 职场文书
省级四好少年事迹材料
2014/01/25 职场文书
党员领导干部廉洁从政承诺书
2014/03/27 职场文书
关于读书的演讲稿600字
2014/08/27 职场文书
研究生就业推荐表导师评语
2014/12/31 职场文书
2015教师年度考核评语
2015/03/25 职场文书
2015年学生会干事工作总结
2015/04/09 职场文书
2015质检员个人年终工作总结
2015/10/23 职场文书
简短清晨问候语
2015/11/10 职场文书