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 相关文章推荐
js 延迟加载 改变JS的位置加快网页加载速度
Dec 11 Javascript
jQuery点击头像上传并预览图片
Feb 23 Javascript
Bootstrap模态框案例解析
Mar 05 Javascript
Bootstrap学习笔记之进度条、媒体对象实例详解
Mar 09 Javascript
微信小程序 本地数据存储实例详解
Apr 13 Javascript
VUE中使用Vue-resource完成交互
Jul 21 Javascript
基于Vue实现页面切换左右滑动效果
Jun 29 Javascript
JS对象序列化成json数据和json数据转化为JS对象的代码
Aug 23 Javascript
cocos creator Touch事件应用(触控选择多个子节点的实例)
Sep 10 Javascript
通过实例学习React中事件节流防抖
Jun 17 Javascript
jQuery实现高度灵活的表单验证功能示例【无UI】
Apr 30 jQuery
vue实现省市区联动 element-china-area-data插件
Apr 22 Vue.js
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版(4)
2006/10/09 PHP
使用apache模块rewrite_module (转)
2007/02/14 PHP
用PHP生成静态HTML速度快类库
2007/03/18 PHP
thinkPHP利用ajax异步上传图片并显示、删除的示例
2018/09/26 PHP
Laravel ORM 数据model操作教程
2019/10/21 PHP
PHP程序员简单的开展服务治理架构操作详解(二)
2020/05/14 PHP
如何实现JS函数的重载
2006/09/22 Javascript
jQuery 使用手册(五)
2009/09/23 Javascript
用box固定长宽实现图片自动轮播js代码
2014/06/09 Javascript
jquery实现当滑动到一定位置时固定效果
2014/06/17 Javascript
JavaScript——DOM操作——Window.document对象详解
2016/07/14 Javascript
详解Angular开发中的登陆与身份验证
2016/07/27 Javascript
js/jquery控制页面动态加载数据 滑动滚动条自动加载事件的方法
2017/02/08 Javascript
jQuery自定义元素右键点击事件(实现案例)
2017/04/28 jQuery
Vue2.0 组件传值通讯的示例代码
2017/08/01 Javascript
详解小程序原生使用ES7 async/await语法
2018/08/06 Javascript
浅谈js闭包理解
2019/03/28 Javascript
javascript实现简单打字游戏
2019/10/29 Javascript
JavaScript实现矩形块大小任意缩放
2020/08/25 Javascript
使用Python进行二进制文件读写的简单方法(推荐)
2016/09/12 Python
Python迭代器定义与简单用法分析
2018/04/30 Python
对python模块中多个类的用法详解
2019/01/10 Python
python修改文件内容的3种方法详解
2019/11/15 Python
详解Python中pyautogui库的最全使用方法
2020/04/01 Python
django model的update时auto_now不被更新的原因及解决方式
2020/04/01 Python
css图标制作教程制作云图标
2014/01/19 HTML / CSS
详解CSS3新增的背景属性
2019/12/25 HTML / CSS
利用HTML5 Canvas制作键盘及鼠标动画的实例分享
2016/03/15 HTML / CSS
欧洲最大的品牌水上运动服装和设备在线零售商:Wuituit Outlet
2018/05/05 全球购物
Envie de Fraise意大利:法国网上推出的孕妇装品牌
2020/10/18 全球购物
我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串?
2014/03/30 面试题
毕业生自荐书模版
2014/01/04 职场文书
解放思想大讨论活动心得体会
2014/09/11 职场文书
聊聊JS ES6中的解构
2021/04/29 Javascript
MySQL连接查询你真的学会了吗?
2021/06/02 MySQL
html用代码制作虚线框怎么做? dw制作虚线圆圈的技巧
2022/12/24 HTML / CSS