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 相关文章推荐
求解开jscript.encode代码的asp函数
Feb 28 Javascript
Javascript 遍历对象中的子对象
Jul 03 Javascript
javascript的console.log()用法小结
May 31 Javascript
JQuery入门——用bind方法绑定事件处理函数应用介绍
Feb 05 Javascript
JavaScript中为什么null==0为false而null大于=0为true(个人研究)
Sep 16 Javascript
js判断游览器类型及版本号的代码
May 11 Javascript
jQuery实现复制到粘贴板功能
Feb 11 Javascript
javascript中的replace函数(带注释demo)
Jan 07 Javascript
基于vue.js 2.x的虚拟滚动条的示例代码
Jan 23 Javascript
JavaScript递归函数解“汉诺塔”算法代码解析
Jul 05 Javascript
解决前后端分离 vue+springboot 跨域 session+cookie失效问题
May 13 Javascript
基于vue-cli3创建libs库的实现方法
Dec 04 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中可以自动分割查询字符的Parse_str函数使用示例
2014/07/25 PHP
php+xml实现在线英文词典查询的方法
2015/01/23 PHP
php变量与JS变量实现不通过跳转直接交互的方法
2017/08/25 PHP
PHP常用函数之获取汉字首字母功能示例
2019/10/21 PHP
THINKPHP-Apache服务器中使用Alias虚拟目录URL重写 隐藏index.php
2021/03/09 PHP
js操作textarea 常用方法总结
2012/12/03 Javascript
常用js字符串判断方法整理
2013/10/18 Javascript
jQueryMobile之Helloworld与页面切换的方法
2015/02/04 Javascript
javascript实现复选框选中属性
2015/03/25 Javascript
JavaScript简单下拉菜单实例代码
2015/09/07 Javascript
js时间戳转为日期格式的方法
2015/12/28 Javascript
基于jquery编写的放大镜插件
2016/03/23 Javascript
Bootstrap按钮下拉菜单组件详解
2016/05/10 Javascript
详解MVC如何使用开源分页插件(shenniu.pager.js)
2016/12/16 Javascript
关于vue.js发布后路径引用的问题解决
2017/08/15 Javascript
详解动画插件wow.js的使用方法
2017/09/13 Javascript
vue2.0.js的多级联动选择器实现方法
2018/02/09 Javascript
最后说说Vue2 SSR 的 Cookies 问题
2018/05/25 Javascript
微信小程序下拉刷新PullDownRefresh的使用方法
2018/11/29 Javascript
Vue+Element实现表格编辑、删除、以及新增行的最优方法
2019/05/28 Javascript
[53:21]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS LGD-CDEC
2014/05/22 DOTA
[50:50]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.20
2020/12/23 DOTA
Python 开发Activex组件方法
2009/11/08 Python
python使用分治法实现求解最大值的方法
2015/05/12 Python
python3监控CentOS磁盘空间脚本
2018/06/21 Python
Pyqt5 实现跳转界面并关闭当前界面的方法
2019/06/19 Python
Python netmiko模块的使用
2020/02/14 Python
python3检查字典传入函数键是否齐全的实例
2020/06/05 Python
python读取hdfs并返回dataframe教程
2020/06/05 Python
linux mint中搜狗输入法导致pycharm卡死的问题
2020/10/28 Python
美国网上眼镜商城:Zenni Optical
2016/11/20 全球购物
《我不是最弱小的》教学反思
2014/02/23 职场文书
高中军训感言400字
2014/02/24 职场文书
接待员岗位职责范本
2015/04/15 职场文书
Golang 实现超大文件读取的两种方法
2021/04/27 Golang
mysql数据库隔离级别详解
2022/06/16 MySQL