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 相关文章推荐
20个最新的jQuery插件
Jan 13 Javascript
Prototype源码浅析 String部分(三)之HTML字符串处理
Jan 15 Javascript
javascript改变position值实现菜单滚动至顶部后固定
Jan 18 Javascript
asp.net刷新本页面的六种方法总结
Jan 07 Javascript
详解jquery事件delegate()的使用方法
Jan 25 Javascript
jQuery购物网页经典制作案例
Aug 19 Javascript
浅谈bootstrap使用中的一些问题以及解决过程
Oct 18 Javascript
Bootstrap选项卡学习笔记分享
Feb 13 Javascript
Javascript中引用类型传递的知识点小结
Mar 06 Javascript
Node.js学习之TCP/IP数据通讯(实例讲解)
Oct 11 Javascript
JavaScript数据结构之双向链表定义与使用方法示例
Oct 27 Javascript
微信小程序之批量上传并压缩图片的实例代码
Jul 05 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
Cannot modify header information错误解决方法
2008/10/08 PHP
PHP中实现汉字转区位码应用源码实例解析
2010/06/14 PHP
thinkphp3.x中session方法的用法分析
2016/05/20 PHP
juqery 学习之四 筛选查找
2010/11/30 Javascript
基于jQuery的为attr添加id title等效果的实现代码
2011/04/20 Javascript
jquery 插件学习(六)
2012/08/06 Javascript
基于jQuery的简单九宫格实现代码
2012/08/09 Javascript
JS刷新框架外页面七种实现代码
2013/02/18 Javascript
ie下jquery.getJSON的缓存问题的处理方法
2013/03/29 Javascript
css3元素简单的闪烁效果实现(html5 jquery)
2013/12/28 Javascript
JS文本获得焦点清除文本文字的示例代码
2014/01/13 Javascript
三种检测iPhone/iPad设备方向的方法
2014/04/23 Javascript
常见浏览器多长时间会提示“脚本运行时间过长”总结
2014/04/29 Javascript
jQuery将多条数据插入模态框的示例代码
2014/09/25 Javascript
微信小程序 template模板详解及实例
2017/02/21 Javascript
React性能优化系列之减少props改变的实现方法
2019/01/17 Javascript
layui多图上传实现删除功能的例子
2019/09/23 Javascript
Node.js API详解之 string_decoder用法实例分析
2020/04/29 Javascript
深入了解Vue.js 混入(mixins)
2020/07/23 Javascript
Express 配置HTML页面访问的实现
2020/11/01 Javascript
Python MD5文件生成码
2009/01/12 Python
python使用rabbitmq实现网络爬虫示例
2014/02/20 Python
在Python中使用dict和set方法的教程
2015/04/27 Python
Python实现爬取马云的微博功能示例
2019/02/16 Python
python3 json数据格式的转换(dumps/loads的使用、dict to str/str to dict、json字符串/字典的相互转换)
2019/04/01 Python
Python字典fromkeys()方法使用代码实例
2020/07/20 Python
python时间序列数据转为timestamp格式的方法
2020/08/03 Python
iHerb俄罗斯:维生素、补品和天然产品
2020/07/09 全球购物
网络工程与软件技术毕业生自荐信
2013/09/24 职场文书
计算机求职信
2013/12/01 职场文书
幼儿园教师演讲稿
2014/05/06 职场文书
我爱祖国演讲稿
2014/09/02 职场文书
解放思想大讨论活动心得体会
2014/09/11 职场文书
亚布力滑雪场导游词
2015/02/09 职场文书
新员工实习期个人工作总结
2015/10/15 职场文书
教你用python实现一个无界面的小型图书管理系统
2021/05/21 Python