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 和 CSS 实现脚注(Footnote)效果
Sep 09 Javascript
js只执行1次的函数示例
Jul 20 Javascript
如何使用jquery实现文字上下滚动效果
Oct 12 Javascript
Angular指令封装jQuery日期时间插件datetimepicker实现双向绑定示例
Jan 22 Javascript
利用angularjs1.4制作的简易滑动门效果
Feb 28 Javascript
JavaScript队列的应用实例详解【经典数据结构】
Apr 12 Javascript
jquery Ajax实现Select动态添加数据
Jun 08 jQuery
js实现京东轮播图效果
Jun 30 Javascript
Vue列表页渲染优化详解
Jul 24 Javascript
JavaScript canvas绘制渐变颜色的矩形
Feb 18 Javascript
vue+element-ui JYAdmin后台管理系统模板解析
Jul 28 Javascript
解决iView Table组件宽度只变大不变小的问题
Nov 13 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
phpMyAdmin 安装教程全攻略
2007/03/19 PHP
利用php输出不同的心形图案
2016/04/22 PHP
PHP实现的登录,注册及密码修改功能分析
2016/11/25 PHP
修改yii2.0用户登录使用的user表为其它的表实现方法(推荐)
2017/08/01 PHP
Laravel框架使用Redis的方法详解
2018/05/30 PHP
PHP的imageTtfText()函数深入详解
2021/03/03 PHP
extjs fckeditor集成代码
2009/05/10 Javascript
childNodes.length与children.length的区别
2009/05/14 Javascript
js实现的折叠导航示例
2013/11/29 Javascript
jQuery实现流动虚线框的方法
2015/01/29 Javascript
React Js 微信禁止复制链接分享禁止隐藏右上角菜单功能
2017/05/26 Javascript
underscore之Chaining_动力节点Java学院整理
2017/07/10 Javascript
微信小程序实现点击返回顶层的方法
2017/07/12 Javascript
详解JSONObject和JSONArray区别及基本用法
2017/10/25 Javascript
使用webpack打包koa2 框架app
2018/02/02 Javascript
记录一篇关于redux-saga的基本使用过程
2018/08/18 Javascript
JS中appendChild追加子节点无效的解决方法
2018/10/14 Javascript
vue.js实现会动的简历(包含底部导航功能,编辑功能)
2019/04/08 Javascript
浅谈layer的Icon样式以及一些常用的layer窗口使用方法
2019/09/11 Javascript
前端vue-cli项目中使用img图片和background背景图的几种方法
2019/11/13 Javascript
JavaScript 判断数据类型的4种方法
2020/09/11 Javascript
[02:10]DOTA2亚洲邀请赛 EG战队出场宣传片
2015/02/07 DOTA
[57:09]DOTA2-DPC中国联赛 正赛 Phoenix vs Dynasty BO3 第一场 1月26日
2021/03/11 DOTA
Python实现豆瓣图片下载的方法
2015/05/25 Python
Python实现的下载网页源码功能示例
2017/06/13 Python
python实现上传下载文件功能
2020/11/19 Python
解决pip install xxx报错SyntaxError: invalid syntax的问题
2018/11/30 Python
详解python:time模块用法
2019/03/25 Python
python如何将两个txt文件内容合并
2019/10/18 Python
html5实现canvas阴影效果示例
2014/05/07 HTML / CSS
财务会计专业应届毕业生求职信
2013/10/18 职场文书
欢迎领导标语
2014/06/27 职场文书
经理聘任证明
2015/03/02 职场文书
诚信教育主题班会
2015/08/13 职场文书
Python使用random模块实现掷骰子游戏的示例代码
2021/04/29 Python
CentOS7设置ssh服务以及端口修改方式
2022/12/24 Servers