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使用cookie
Feb 02 Javascript
JS实现可改变列宽的table实例
Jul 02 Javascript
ExtJS如何设置与获取radio控件的选取状态
Jan 22 Javascript
javascript实现图片延迟加载方法汇总(三种方法)
Aug 27 Javascript
JavaScript实现cookie的写入、读取、删除功能
Nov 05 Javascript
AngularJS入门教程之AngularJS表达式
Apr 18 Javascript
jquery操作checkbox火狐下第二次无法勾选的解决方法
Oct 10 Javascript
Linux CentOS系统下安装node.js与express的方法
Apr 01 Javascript
jquery.uploadifive插件怎么解决上传限制图片或文件大小问题
May 08 jQuery
WebGL three.js学习笔记之阴影与实现物体的动画效果
Apr 25 Javascript
浅谈vue权限管理实现及流程
Apr 23 Javascript
Node.js API详解之 zlib模块用法分析
May 19 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
深入HTTP响应状态码速查表的详解
2013/06/07 PHP
PHP中常用的转义函数
2014/02/28 PHP
phpmyadmin配置文件现在需要绝密的短密码(blowfish_secret)的2种解决方法
2014/05/07 PHP
使用ThinkPHP的自动完成实现无限级分类实例详解
2016/09/02 PHP
PHP经典算法集锦【经典收藏】
2016/09/14 PHP
PHP实现获取文件mime类型多种方法解析
2020/05/28 PHP
让iframe子窗体取父窗体地址栏参数(querystring)
2009/10/13 Javascript
jQueryPad 实用的jQuery测试工具(支持IE,chrome,FF)
2010/05/22 Javascript
jQuery图片轮播的具体实现
2013/09/11 Javascript
中止javascript执行的方法
2014/02/14 Javascript
JavaScript检查某个function是否是原生代码的方法
2014/08/20 Javascript
JavaScript中使用document.write向页面输出内容实例
2014/10/16 Javascript
基于BootStrap的图片轮播效果展示实例代码
2016/05/23 Javascript
Bootstrap实现input控件失去焦点时验证
2016/08/04 Javascript
jQuery中ajax错误调试分析
2016/12/01 Javascript
js自定义QQ菜单效果
2017/01/10 Javascript
深入理解javascript的getTime()方法
2017/02/16 Javascript
详解webpack进阶之loader篇
2017/08/23 Javascript
Angular 容器部署的方法
2018/04/17 Javascript
vue-rx的初步使用教程
2018/09/21 Javascript
JavaScript 判断iPhone X Series机型的方法
2019/01/28 Javascript
仿vue-cli搭建属于自己的脚手架的方法步骤
2019/04/17 Javascript
js函数和this用法实例分析
2020/03/13 Javascript
vue-cli4.x创建企业级项目的方法步骤
2020/06/18 Javascript
vue实现简易计算器功能
2021/01/20 Vue.js
Python3实现从排序数组中删除重复项算法分析
2019/04/03 Python
Django rstful登陆认证并检查session是否过期代码实例
2019/08/13 Python
python使用HTMLTestRunner导出饼图分析报告的方法
2019/12/30 Python
东南亚地区最大的购物网站Lazada新加坡站点:Lazada.sg
2016/07/17 全球购物
如何进行Linux分区优化
2013/02/12 面试题
揭牌仪式策划方案
2014/05/28 职场文书
企业领导班子四风对照检查材料
2014/09/27 职场文书
六五普法先进个人主要事迹材料
2015/11/03 职场文书
大学生团支书竞选稿
2015/11/21 职场文书
MySQL实例精讲单行函数以及字符数学日期流程控制
2021/10/15 MySQL
Golang数据类型和相互转换
2022/04/12 Golang