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 相关文章推荐
Wordpress ThickBox 点击图片显示下一张图的修改方法
Dec 11 Javascript
JavaScript中的isXX系列是否继续使用的分析
Apr 16 Javascript
jquery jqPlot API 中文使用教程(非常强大的图表工具)
Aug 15 Javascript
jquery制作select列表双向选择示例代码
Sep 02 Javascript
jQuery插件expander实现图片翻转特效
May 21 Javascript
js判断图片加载完成后获取图片实际宽高的方法
Feb 25 Javascript
微信小程序 获取当前地理位置和经纬度实例代码
Dec 05 Javascript
JavaScript注册时密码强度校验代码
Jun 30 Javascript
解决在vue+webpack开发中出现两个或多个菜单公用一个组件问题
Nov 28 Javascript
通过vue-cli来学习修改Webpack多环境配置和发布问题
Dec 22 Javascript
BootstrapValidator实现表单验证功能
Nov 08 Javascript
JavaScript对象原型链原理解析
Jan 22 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框架codeigniter中如何使用框架的session
2013/06/24 PHP
PHP实现图片裁剪、添加水印效果代码
2014/10/01 PHP
ThinkPHP中调用PHPExcel的实现代码
2017/04/08 PHP
PHP基于SMTP协议实现邮件发送实例代码
2017/04/27 PHP
yii2局部关闭(开启)csrf的验证的实例代码
2017/07/10 PHP
PHP实现的链式队列结构示例
2017/09/15 PHP
jquery validate在ie8下的bug解决方法
2013/11/13 Javascript
js动态控制table的tr、td增加及删除的具体实现
2014/04/30 Javascript
node.js中的fs.existsSync方法使用说明
2014/12/17 Javascript
jQuery中[attribute!=value]选择器用法实例
2014/12/31 Javascript
js使用Array.prototype.sort()对数组对象排序的方法
2015/01/28 Javascript
JavaScript变量的作用域全解析
2015/08/14 Javascript
jQuery实现带水平滑杆的焦点图动画插件
2016/03/08 Javascript
javascript高级选择器querySelector和querySelectorAll全面解析
2016/04/07 Javascript
javascript实现滚动效果的数字时钟实例
2016/07/21 Javascript
基于JS实现仿百度百家主页的轮播图效果
2017/03/06 Javascript
Angular2使用jQuery的方法教程
2017/05/28 jQuery
Vue.js最佳实践(五招助你成为vuejs大师)
2018/05/04 Javascript
NProgress显示顶部进度条效果及使用详解
2019/09/21 Javascript
解决vue prop传值default属性如何使用,为何不生效的问题
2020/09/21 Javascript
[55:35]VGJ.S vs Mski Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
[42:20]Secret vs Liquid 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python中几种操作字符串的方法的介绍
2015/04/09 Python
pygame实现俄罗斯方块游戏
2018/06/26 Python
Pycharm中出现ImportError:DLL load failed:找不到指定模块的解决方法
2019/09/17 Python
Flask框架搭建虚拟环境的步骤分析
2019/12/21 Python
详解tensorflow2.x版本无法调用gpu的一种解决方法
2020/05/25 Python
Python基于BeautifulSoup爬取京东商品信息
2020/06/01 Python
时尚孕妇装:Ingrid & Isabel
2019/05/08 全球购物
给同事的道歉信
2014/01/11 职场文书
教室标语大全
2014/06/21 职场文书
小学生国庆演讲稿
2014/09/05 职场文书
2014年向国旗敬礼活动方案
2014/09/27 职场文书
html+css实现文字折叠特效实例
2021/06/02 HTML / CSS
pycharm部署django项目到云服务器的详细流程
2021/06/29 Python
SpringBoot 整合mongoDB并自定义连接池的示例代码
2022/02/28 MongoDB