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子元素过滤选择器使用示例
Jun 24 Javascript
jQuery性能优化的38个建议
Mar 04 Javascript
jquery mobile动态添加元素之后不能正确渲染解决方法说明
Mar 05 Javascript
jQuery实现仿Google首页拖动效果的方法
May 04 Javascript
jQuery实现指定区域外单击关闭指定层的方法【经典】
Jun 22 Javascript
fullCalendar中文API官方文档
Feb 07 Javascript
微信小程序使用modal组件弹出对话框功能示例
Nov 29 Javascript
vue中前进刷新、后退缓存用户浏览数据和浏览位置的实例讲解
Sep 21 Javascript
layui-laydate时间日历控件使用方法详解
Nov 15 Javascript
JavaScript中引用vs复制示例详析
Dec 06 Javascript
详解Jest结合Vue-test-utils使用的初步实践
Jun 27 Javascript
基于Node的Axure文件在线预览的实现代码
Aug 28 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
分享常见的几种页面静态化的方法
2015/01/08 PHP
Laravel获取所有的数据库表及结构的方法
2019/10/10 PHP
JavaScript XML和string相互转化实现代码
2011/07/04 Javascript
IE浏览器不支持getElementsByClassName的解决方法
2014/08/27 Javascript
JavaScript中的变量作用域介绍
2014/12/31 Javascript
JS获取图片高度宽度的方法分享
2015/04/17 Javascript
谈谈JSON对象和字符串之间的相互转换JSON.stringify(obj)和JSON.parse(string)
2015/10/01 Javascript
laypage分页控件使用实例详解
2016/05/19 Javascript
JS实现回到页面顶部动画效果的简单实例
2016/05/24 Javascript
全面介绍javascript实用技巧及单竖杠
2016/07/18 Javascript
微信小程序  简单实例(阅读器)的实例开发
2016/09/29 Javascript
详解Angular Reactive Form 表单验证
2017/07/06 Javascript
vue-cli配置文件——config篇
2018/01/04 Javascript
基于 D3.js 绘制动态进度条的实例详解
2018/02/26 Javascript
一种angular的方法级的缓存注解(装饰器)
2018/03/13 Javascript
详解webpack运行Babel教程
2018/06/13 Javascript
使用react context 实现vue插槽slot功能
2019/07/18 Javascript
在vue中根据光标的显示与消失实现下拉列表
2019/09/29 Javascript
JavaScript HTML DOM 元素 (节点)新增,编辑,删除操作实例分析
2020/03/02 Javascript
[08:42]DOTA2每周TOP10 精彩击杀集锦vol.2
2014/06/25 DOTA
使用Python操作Elasticsearch数据索引的教程
2015/04/08 Python
Python chardet库识别编码原理解析
2020/02/18 Python
Python 爬取必应壁纸的实例讲解
2020/02/24 Python
python输出第n个默尼森数的实现示例
2020/03/08 Python
python将dict中的unicode打印成中文实例
2020/05/11 Python
python安装读取grib库总结(推荐)
2020/06/24 Python
Lovedrobe官网:英国领先的大码服装品牌
2019/09/19 全球购物
SK-II神仙水美国官网:SK-II美国
2020/02/25 全球购物
跟单文员的岗位职责
2013/11/14 职场文书
工程造价专业求职信
2014/07/17 职场文书
2014优秀党员事迹材料
2014/08/14 职场文书
中华在我心中演讲稿
2014/09/13 职场文书
党员作风建设自查报告
2014/10/23 职场文书
公司员工奖惩制度
2015/08/04 职场文书
MySQL外键约束(FOREIGN KEY)案例讲解
2021/08/23 MySQL
zabbix配置nginx监控的实现
2022/05/25 Servers