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 相关文章推荐
学习javascript,实现插入排序实现代码
Jul 31 Javascript
JS判断页面加载状态以及添加遮罩和缓冲动画的代码
Oct 11 Javascript
javascript拖拽上传类库DropzoneJS使用方法
Dec 05 Javascript
javascript如何写热点图
Dec 08 Javascript
javascript创建cookie、读取cookie
Mar 31 Javascript
解决前端跨域问题方案汇总
Nov 20 Javascript
简单实现JS倒计时效果
Dec 23 Javascript
canvas学习之API整理笔记(二)
Dec 29 Javascript
在js代码拼接dom对象到页面上去的模板总结(必看)
Feb 14 Javascript
浅谈JS中的常用选择器及属性、方法的调用
Jul 28 Javascript
React倒计时功能实现代码——解耦通用
Sep 18 Javascript
让你30分钟快速掌握vue3教程
Oct 26 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
在VS2008中编译MYSQL5.1.48的方法
2010/07/03 PHP
thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法
2016/05/19 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
2020/02/21 PHP
php设计模式之状态模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
qTip 基于JQuery的Tooltip插件[兼容性好]
2010/09/01 Javascript
js切换div css注意的细节
2012/12/10 Javascript
jQuery实现带延迟效果的滑动菜单代码
2015/09/02 Javascript
JS实现可自定义大小,可双击关闭的弹出层效果
2015/10/16 Javascript
基于Jquery和CSS3制作数字时钟附源码下载(CSS3篇)
2015/11/24 Javascript
jquery ztree异步搜索(搜叶子)实践
2016/02/25 Javascript
jquery 实时监听输入框值变化的完美方法(必看)
2017/01/26 Javascript
详谈jQuery.load()和Jsp的include的区别
2017/04/12 jQuery
Angular2.0/4.0 使用Echarts图表的示例代码
2017/12/07 Javascript
详解Node.js中的Async和Await函数
2018/02/22 Javascript
vue自定义正在加载动画的例子
2019/11/14 Javascript
JS前后端实现身份证号验证代码解析
2020/07/23 Javascript
python访问纯真IP数据库的代码
2011/05/19 Python
详解python 发送邮件实例代码
2016/12/22 Python
python实现冒泡排序算法的两种方法
2018/03/10 Python
Django中日期处理注意事项与自定义时间格式转换详解
2018/08/06 Python
python中使用zip函数出现错误的原因
2018/09/28 Python
详解python:time模块用法
2019/03/25 Python
Python爬虫动态ip代理防止被封的方法
2019/07/07 Python
pip安装提示Twisted错误问题(Python3.6.4安装Twisted错误)
2020/05/09 Python
python输出数学符号实例
2020/05/11 Python
Python3如何使用多线程升程序运行速度
2020/08/11 Python
Juice Beauty官网:有机美容产品,护肤与化妆品
2020/06/13 全球购物
纬创Java面试题笔试题
2014/10/02 面试题
什么是makefile? 如何编写makefile?
2012/08/08 面试题
物业门卫岗位职责
2013/12/28 职场文书
会计专业自我鉴定
2014/02/10 职场文书
2014年管理人员工作总结
2014/12/01 职场文书
莫言诺贝尔获奖感言(全文)
2015/07/31 职场文书
yyds什么意思?90后已经听不懂00后讲话了……
2022/02/03 杂记
MySQL Server 层四个日志
2022/03/31 MySQL
Redis基本数据类型List常用操作命令
2022/06/01 Redis