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 ui(接口)介绍
Sep 17 Javascript
为指定的元素添加遮罩层的示例代码
Jan 15 Javascript
Js使用WScript.Shell对象执行.bat文件和cmd命令
Dec 18 Javascript
Node.js中使用socket创建私聊和公聊聊天室
Nov 19 Javascript
jQuery自定义图片缩放拖拽插件imageQ实现方法(附demo源码下载)
May 27 Javascript
jQuery实现链接的title快速出现的方法
Feb 20 Javascript
浅谈JS获取元素的N种方法及其动静态讨论
Aug 25 Javascript
解决vue2.0路由跳转未匹配相应用路由避免出现空白页面的问题
Aug 24 Javascript
使用webpack搭建vue项目实现脚手架功能
Mar 15 Javascript
jQuery中实现text()的方法
Apr 04 jQuery
tweenjs缓动算法的使用实例分析
Aug 26 Javascript
vue-router路由模式详解(小结)
Aug 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
PHP 正则表达式小结
2015/02/12 PHP
php相对当前文件include其它文件的方法
2015/03/13 PHP
自定义右键属性覆盖浏览器默认右键行为实现代码
2013/02/02 Javascript
jquery实现简单的拖拽效果实例兼容所有主流浏览器(优化篇)
2013/06/28 Javascript
javascript实现2048游戏示例
2014/05/04 Javascript
javascript写的异步加载js文件函数(支持数组传参)
2014/06/07 Javascript
jquery实现图片按比例缩放示例
2014/07/01 Javascript
网站接入QQ登录的两种方法
2014/07/22 Javascript
jQuery多级弹出菜单插件ZoneMenu
2014/12/18 Javascript
jquery 设置style:display的方法
2015/01/29 Javascript
php+ajax+jquery实现点击加载更多内容
2015/05/03 Javascript
jquery读写cookie操作实例分析
2015/12/24 Javascript
简介AngularJS中$http服务的用法
2016/02/06 Javascript
详谈javascript异步编程
2016/02/21 Javascript
Jquery实现遮罩层的简单实例(就是弹出DIV周围都灰色不能操作)
2016/07/14 Javascript
Node.js + Redis Sorted Set实现任务队列
2016/09/19 Javascript
js模拟微博发布消息
2017/02/23 Javascript
javascript按顺序加载运行js方法
2017/12/01 Javascript
Vue监听数据渲染DOM完以后执行某个函数详解
2018/09/11 Javascript
vue input实现点击按钮文字增删功能示例
2019/01/29 Javascript
Node.js fs模块原理及常见用途
2020/10/22 Javascript
在antd Table中插入可编辑的单元格实例
2020/10/28 Javascript
python requests 使用快速入门
2017/08/31 Python
python实现闹钟定时播放音乐功能
2018/01/25 Python
基于wxPython的GUI实现输入对话框(2)
2019/02/27 Python
python 上下文管理器及自定义原理解析
2019/11/19 Python
python可以用哪些数据库
2020/06/22 Python
利用python+ffmpeg合并B站视频及格式转换的实例代码
2020/11/24 Python
Superdry瑞典官网:英国日本街头风品牌
2017/05/17 全球购物
Speedo澳大利亚官网:全球领先游泳品牌
2018/02/04 全球购物
美国香薰蜡烛品牌:PADDYWAX
2018/10/06 全球购物
含精油的天然有机化妆品:Indemne
2019/08/27 全球购物
法国购买二手电子产品网站:Asgoodasnew
2020/03/27 全球购物
热爱祖国的演讲稿
2014/05/04 职场文书
2014年信息宣传工作总结
2014/12/18 职场文书
教师求职自荐信
2015/03/26 职场文书