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 相关文章推荐
javascript 网页跳转的方法
Dec 24 Javascript
JS对外部文件的加载及对IFRMAME的加载的实现,当加载完成后,指定指向方法(方法回调)
Jul 04 Javascript
使用js判断当前时区TimeZone是否是夏令时
Feb 23 Javascript
JS 实现倒计时数字时钟效果【附实例代码】
Mar 30 Javascript
BootStrap 轮播插件(carousel)支持左右手势滑动的方法(三种)
Jul 07 Javascript
浅谈Node.js:Buffer模块
Dec 05 Javascript
微信小程序(六):列表上拉加载下拉刷新示例
Jan 13 Javascript
详解Vue 实例中的生命周期钩子
Mar 21 Javascript
利用vscode编写vue的简单配置详解
Jun 17 Javascript
vue与vue-i18n结合实现后台数据的多语言切换方法
Mar 08 Javascript
微信小程序间使用navigator跳转传值问题实例分析
Mar 27 Javascript
浅谈vue单页面中有多个echarts图表时的公用代码写法
Jul 19 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
Windows下的PHP 5.3.x安装 Zend Guard Loader教程
2014/09/06 PHP
php is_executable判断给定文件名是否可执行实例
2016/09/26 PHP
Yii框架中sphinx索引配置方法解析
2016/10/18 PHP
php判断str字符串是否是xml格式数据的方法示例
2017/07/26 PHP
thinkphp5实现微信扫码支付
2019/12/23 PHP
jQuery 1.5 源码解读 面向中高阶JSER
2011/04/05 Javascript
JS比较2个日期间隔的示例代码
2014/04/15 Javascript
Javascript中的回调函数和匿名函数的回调示例介绍
2014/05/12 Javascript
js换图片效果可进行定时操作
2014/06/09 Javascript
JavaScript实现数字数组正序排列的方法
2015/04/06 Javascript
jQuery-1.9.1源码分析系列(十一)DOM操作续之克隆节点
2015/12/01 Javascript
JavaScript使用DeviceOne开发实战(四)仿优酷视频应用
2015/12/02 Javascript
以JavaScript来实现WordPress中的二级导航菜单的方法
2015/12/14 Javascript
AngularJS基础 ng-mousemove 指令简单示例
2016/08/02 Javascript
详解Angularjs在控制器(controller.js)中使用过滤器($filter)格式化日期/时间实例
2017/02/17 Javascript
nodejs socket实现的服务端和客户端功能示例
2017/06/02 NodeJs
教你5分钟学会用requirejs(必看篇)
2017/07/25 Javascript
vuex 动态注册方法 registerModule的实现
2019/07/03 Javascript
微信小程序在线客服自动回复功能(基于node)
2019/07/03 Javascript
微信小程序 select 下拉框组件功能
2019/09/09 Javascript
将Vue组件库更换为按需加载的方法步骤
2020/05/06 Javascript
javascript实现多边形碰撞检测
2020/10/24 Javascript
Python实现的寻找前5个默尼森数算法示例
2018/03/25 Python
python判断数字是否是超级素数幂
2018/09/27 Python
Python List cmp()知识点总结
2019/02/18 Python
详解Python计算机视觉 图像扭曲(仿射扭曲)
2019/03/27 Python
Python企业编码生成系统总体系统设计概述
2019/07/26 Python
python如何安装下载后的模块
2020/07/03 Python
Python3 用matplotlib绘制sigmoid函数的案例
2020/12/11 Python
CSS3实现王者匹配时的粒子动画效果
2019/04/12 HTML / CSS
阿迪达斯俄罗斯官方商城:adidas俄罗斯
2017/03/08 全球购物
公共汽车、火车和飞机票的通用在线预订和销售平台:INFOBUS
2019/11/30 全球购物
应届生学校辅导员求职信
2013/11/07 职场文书
二十年同学聚会致辞
2015/07/28 职场文书
解决Swagger2返回map复杂结构不能解析的问题
2021/07/02 Java/Android
Java中try catch处理异常示例
2021/12/06 Java/Android