element el-input directive数字进行控制


Posted in Javascript onOctober 11, 2018

使用自定义指令格式化el-input

背景

使用element开发的过程中遇到循环的数据只能输入数字,并且有不要小数点,有需要小数点的

使用vue directive 进行控制

element el-input directive数字进行控制

开发

页面使用方式 v-numberInt:0="item.first_fee" 0为保留几位小数

<tr v-for="(item,index) in form.valuation_rules" :key="index">  
  <td class="center" >    
   <el-input v-if="form.valuation_type==1" v-numberInt:0="item.first_fee" v-model.trim="item.first_amount"></el-input>  
   <el-input v-else v-model.trim="item.first_amount" v-numberInt:2="item.first_fee"></el-input>  
  </td>   
  <td class="center"> 
   <el-input v-model.trim="item.first_fee" v-numberInt:2="item.first_fee"></el-input>   </td>  
  <td class="center"> {{item.additional_amount}} 
  </td> 
  <td class="center">  
   <el-input v-model.trim="item.additional_fee" v-numberInt:2="item.additional_fee"></el-input>
  </td>
 </tr>

因为用的是element 的el-input ,组件input外层包着一层div所以要使用const element = el.getElementsByTagName('input')[0]获取 input对其监听失焦 当输入的不是数字时,失焦后会变成0,没有使用directive update方法,比较简单directives.js

directives.js

Vue.directive('numberInt', { bind: function(el, binding, vnode) { 
  const element = el.getElementsByTagName('input')[0] 
  const len = binding.arg  // 初始化设置 
  element.value = Number(element.value ).toFixed(len)  // 失焦时候格式化
  element.addEventListener('blur', function() { 
  if (isNaN(element.value)) {   
    vnode.data.model.callback(0)  
   } else {   
    vnode.data.model.callback(Number(element.value).toFixed(len)) 
   }  
   }) 
 }})

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery学习笔记之控制页面实现代码
Feb 27 Javascript
AngularJs动态加载模块和依赖注入详解
Jan 11 Javascript
js+html5实现的自由落体运动效果代码
Jan 28 Javascript
一道关于JavaScript变量作用域的面试题
Mar 08 Javascript
jQuery的文档处理程序详解
May 10 Javascript
React Native如何消除启动时白屏的方法
Aug 08 Javascript
vue源码解析之事件机制原理
Apr 21 Javascript
解析vue路由异步组件和懒加载案例
Jun 08 Javascript
iconfont的三种使用方式详解
Aug 05 Javascript
vue跳转方式(打开新页面)及传参操作示例
Jan 26 Javascript
js实现金山打字通小游戏
Jul 24 Javascript
vue插件--仿微信小程序showModel实现模态提示窗功能
Aug 19 Javascript
详解angular2.x创建项目入门指令
Oct 11 #Javascript
详解vscode中vue代码颜色插件
Oct 11 #Javascript
微信小程序之裁剪图片成圆形的实现代码
Oct 11 #Javascript
Vue中使用ElementUI使用第三方图标库iconfont的示例
Oct 11 #Javascript
css配合JavaScript实现tab标签切换效果
Oct 11 #Javascript
vue最简单的前后端交互示例详解
Oct 11 #Javascript
JavaScript中七种流行的开源机器学习框架
Oct 11 #Javascript
You might like
几款免费开源的不用数据库的php的cms
2010/12/19 PHP
jquery制作select列表双向选择示例代码
2014/09/02 Javascript
jquery实现无限分级横向导航菜单的方法
2015/03/12 Javascript
直接拿来用的15个jQuery代码片段
2015/09/23 Javascript
基于JavaScript实现百叶窗动画效果不只单纯flas可以实现
2016/02/29 Javascript
js显示动态时间的方法详解
2016/08/20 Javascript
JavaScript浏览器对象模型BOM(BrowserObjectModel)实例详解
2016/11/29 Javascript
jQuery Validate表单验证插件的基本使用方法及功能拓展
2017/01/04 Javascript
深入理解Javascript中的观察者模式
2017/02/20 Javascript
简单的网页广告特效实例
2017/08/19 Javascript
原生JS与jQuery编写简单选项卡
2017/10/30 jQuery
利用Javascript获取选择文本所在的句子详解
2017/12/03 Javascript
vue轮播图插件vue-concise-slider的使用
2018/03/13 Javascript
使用 UniApp 实现小程序的微信登录功能
2020/06/09 Javascript
VUE实时监听元素距离顶部高度的操作
2020/07/29 Javascript
[01:45]IMBATV TI4前线报道-选手到达
2014/07/07 DOTA
python实现简单温度转换的方法
2015/03/13 Python
Python中列表的一些基本操作知识汇总
2015/05/20 Python
Python的Django框架中自定义模版标签的示例
2015/07/20 Python
Django 2.0版本的新特性抢先看!
2018/01/05 Python
详解python的ORM中Pony用法
2018/02/09 Python
PYQT5实现控制台显示功能的方法
2019/06/25 Python
python爬虫之爬取百度音乐的实现方法
2019/08/24 Python
python代码如何注释
2020/06/01 Python
Python+Xlwings 删除Excel的行和列
2020/12/19 Python
Html5 页面适配iPhoneX(就是那么简单)
2019/09/05 HTML / CSS
英国第一职业高尔夫商店:Clickgolf.co.uk
2020/11/18 全球购物
文史专业毕业生自荐信
2013/11/17 职场文书
五年后的职业生涯规划
2014/03/04 职场文书
婚前协议书标准版
2014/10/19 职场文书
父亲节活动总结
2015/02/12 职场文书
身份证丢失证明
2015/06/19 职场文书
六一亲子活动感想
2015/08/07 职场文书
2019年个人工作总结范文(3篇)
2019/08/27 职场文书
上帝为你开了一扇窗之Tkinter常用函数详解
2021/06/02 Python
python异常中else的实例用法
2021/06/15 Python