vue指令只能输入正数并且只能输入一个小数点的方法


Posted in Javascript onJune 08, 2018

最近在做一个金额查询,验证的时候总是出现很多问题,如输入-号后,input框里是没有了,但是在model里还是绑定了,提交的时候就会报错,真的是让人很是郁闷,小数点也是input框过滤掉了,但是提交的时候也会出现。不过经过努力终于找到了一种解决方案,在这里``和大家分享一下下。

Vue.directive('numbers', {
 bind: function (el, binding) {
  console.log('ere')
 },
 inserted: function (el) {
  // el.querySelector('input').blur(console.log('etset'))
 },
 update: function (el, binding, vnode, oldVnode) {
  console.log('vnode', vnode)
  let express = vnode.data.directives[1].expression
  // let value = el.querySelector('input').value
  let value = vnode.data.directives[1].value
  if (typeof value === 'string') {} //在重置的时候清空
  if (value.split('.').length - 1 > 1) {
   value = value.replace(/\.{2,}/g, '') // 只保留第一个. 清除多余的
   value = value.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.')
  }
  let repeatValue = value.replace(/[^\d.]/g, '')
  // setTimeout(() => {
  //  el.querySelector('input').value = repeatValue
  // }, 5)
  setValueWithExpressionVue(vnode.context.$data, express, repeatValue)
 },
 componentUpdated: function () {},
 unbind: function (el) {}
})

// 
function setValueWithExpressionVue (currObj, expression, value) {
 expression = expression.split('.')
 expression.forEach(function (arg, i) {
  if (i < expression.length - 1) {
   currObj = currObj[arg]
  } else {
   currObj[arg] = value
  }
 })
}

放到main.js里就好了

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
显示、隐藏密码
Jul 01 Javascript
[原创]js与自动伸缩图片 自动缩小图片的多浏览器兼容的方法总结
Mar 12 Javascript
javascript getElementsByName()的用法说明
Jul 31 Javascript
JavaScript对象和字串之间的转换实例探讨
Apr 21 Javascript
javascript 判断字符串是否包含某字符串及indexOf使用示例
Oct 18 Javascript
跟我学习javascript的闭包
Nov 16 Javascript
ionic js 复选框 与普通的 HTML 复选框到底有没区别
Jun 06 Javascript
在web中js实现类似excel的表格控件
Sep 01 Javascript
微信小程序 MinUI组件库系列之badge徽章组件示例
Aug 20 Javascript
浅析js中mvvm模式实现的原理
Oct 06 Javascript
基于vue如何发布一个npm包的方法步骤
May 15 Javascript
vue 弹出遮罩层样式实例
Jul 22 Javascript
bootstrap treeview 树形菜单带复选框及级联选择功能
Jun 08 #Javascript
原生实现一个react-redux的代码示例
Jun 08 #Javascript
vue项目中使用百度地图的方法
Jun 08 #Javascript
浅谈Vue路由快照实现思路及其问题
Jun 07 #Javascript
JavaScript中click和onclick本质区别与用法分析
Jun 07 #Javascript
jQuery动态移除与增加onclick属性的方法详解
Jun 07 #jQuery
使用Vue-cli 3.0搭建Vue项目的方法
Jun 07 #Javascript
You might like
php self,$this,const,static,-&amp;gt;的使用
2009/10/22 PHP
PHP删除特定数组内容并且重建数组索引的方法.
2011/03/25 PHP
php cookie使用方法学习笔记分享
2013/11/07 PHP
PHP快速生成各种信息提示框的方法
2016/02/03 PHP
用JavaScrpt实现文件夹简单轻松加密的实现方法图文
2008/09/08 Javascript
javascript 类型判断代码分析
2010/03/28 Javascript
js 创建书签小工具之理论
2011/02/25 Javascript
nodejs的10个性能优化技巧
2014/07/15 NodeJs
在linux中使用包管理器安装node.js
2015/03/13 Javascript
javascript函数式编程实例分析
2015/04/25 Javascript
JavaScript基于setTimeout实现计数的方法
2015/05/08 Javascript
js实现登录验证码
2016/12/22 Javascript
微信小程序封装http访问网络库实例代码
2017/05/24 Javascript
微信小程序与php 实现微信支付的简单实例
2017/06/23 Javascript
jQuery实现手势解锁密码特效
2017/08/14 jQuery
深入浅析Vue不同场景下组件间的数据交流
2017/08/15 Javascript
阿里大于短信验证码node koa2的实现代码(最新)
2017/09/07 Javascript
vue技术分享之你可能不知道的7个秘密
2018/04/09 Javascript
在Bootstrap开发框架中使用dataTable直接录入表格行数据的方法
2018/10/25 Javascript
js核心基础之构造函数constructor用法实例分析
2019/05/11 Javascript
js实现3D照片墙效果
2019/10/28 Javascript
新手该如何学python怎么学好python?
2008/10/07 Python
PyQt5每天必学之单行文本框
2018/04/19 Python
Python自然语言处理 NLTK 库用法入门教程【经典】
2018/06/26 Python
python实现简单井字棋游戏
2020/03/04 Python
Python3操作读写CSV文件使用包过程解析
2020/04/10 Python
opencv-python的RGB与BGR互转方式
2020/06/02 Python
各大浏览器 CSS3 和 HTML5 兼容速查表 图文
2010/04/01 HTML / CSS
利用CSS3实现平移动画效果示例代码
2016/10/12 HTML / CSS
GUESS德国官网:美国牛仔服装品牌
2017/02/14 全球购物
日本卡普空电视游戏软件公司官方购物网站:e-CAPCOM
2018/07/17 全球购物
资深地理教师自我评价
2013/09/21 职场文书
美食节目策划方案
2014/05/31 职场文书
公司授权委托书格式范文
2014/10/02 职场文书
大班下学期幼儿评语
2014/12/30 职场文书
JS 4个超级实用的小技巧 提升开发效率
2021/10/05 Javascript