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 相关文章推荐
Mootools 1.2教程 定时器和哈希简介
Sep 15 Javascript
基于jQuery实现左右图片轮播(原理通用)
Dec 24 Javascript
第一次接触神奇的Bootstrap菜单和导航
Aug 01 Javascript
vue.js指令v-for使用及索引获取
Nov 03 Javascript
JavaScript生成.xls文件的代码
Dec 22 Javascript
Bootstrap面板(Panels)的简单实现代码
Mar 17 Javascript
js实现从左向右滑动式轮播图效果
Jul 07 Javascript
webpack实现热加载自动刷新的方法
Jul 30 Javascript
js 实现复选框只能选择一项的示例代码
Jan 23 Javascript
详解vue 计算属性与方法跟侦听器区别(面试考点)
Apr 23 Javascript
微信小程序自定义菜单切换栏tabbar组件代码实例
Dec 30 Javascript
js实现简单进度条效果
Mar 25 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 similar_text()函数的定义和用法
2016/05/12 PHP
PHP异步进程助手async-helper
2018/02/05 PHP
thinkPHP框架整合tcpdf插件操作示例
2018/08/07 PHP
php实现微信小程序授权登录功能(实现流程)
2019/11/13 PHP
VBScript版代码高亮
2006/06/26 Javascript
js jquery验证银行卡号信息正则学习
2013/01/21 Javascript
将文本输入框内容加入表中的js代码
2013/08/18 Javascript
Javascript中的默认参数详解
2014/10/22 Javascript
javascript常用的方法分享
2015/07/01 Javascript
JS实现光滑展开合拢的菜单效果代码
2015/09/16 Javascript
JavaScript高级教程5.6之基本包装类型(详细)
2015/11/23 Javascript
Node.js服务器环境下使用Mock.js拦截AJAX请求的教程
2016/05/23 Javascript
jQuery延迟执行的实现方法
2016/12/21 Javascript
MUI实现上拉加载和下拉刷新效果
2017/06/30 Javascript
利用jQuery+localStorage实现一个简易的计时器示例代码
2017/12/25 jQuery
Bootstrap实现可折叠分组侧边导航菜单
2018/03/07 Javascript
JS中用EL表达式获取上下文参数值的方法
2018/03/28 Javascript
vue结合element-ui使用示例
2019/01/24 Javascript
layUI的验证码功能及校验实例
2019/10/25 Javascript
python3安装pip3(install pip3 for python 3.x)
2018/04/03 Python
python抓取搜狗微信公众号文章
2019/04/01 Python
解决python中导入win32com.client出错的问题
2019/07/26 Python
Python实现打包成库供别的模块调用
2020/07/13 Python
详解Django中views数据查询使用locals()函数进行优化
2020/08/24 Python
Python程序慢的重要原因
2020/09/04 Python
详解用python -m http.server搭一个简易的本地局域网
2020/09/24 Python
HTML5的结构和语义(4):语义性的内联元素
2008/10/17 HTML / CSS
英国游戏机和游戏购物网站:365games.co.uk
2018/06/18 全球购物
四年级数学教学反思
2014/02/02 职场文书
2014年党员创先争优承诺书
2014/05/29 职场文书
物理学专业求职信
2014/07/04 职场文书
2015年建筑工作总结报告
2015/05/04 职场文书
导游词之镇江-金山寺
2019/10/14 职场文书
Nginx反爬虫策略,防止UA抓取网站
2021/03/31 Servers
浅谈mysql执行过程以及顺序
2021/05/12 MySQL
js实现自动锁屏功能
2021/06/02 Javascript