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 相关文章推荐
几个常用的JavaScript字符串处理函数 - split()、join()、substring()和indexOf()
Jun 02 Javascript
ExtJS4 组件化编程,动态加载,面向对象,Direct
May 12 Javascript
jquery插件制作简单示例说明
Feb 03 Javascript
JavaScript插入动态样式实现代码
Feb 22 Javascript
Google Map V3 绑定气泡窗口(infowindow)Dom事件实现代码
Apr 26 Javascript
用C/C++来实现 Node.js 的模块(一)
Sep 24 Javascript
laydate.js日期时间选择插件
Jan 04 Javascript
JavaScript之underscore_动力节点Java学院整理
Jul 03 Javascript
pm2 部署 node的三种方法示例
Oct 20 Javascript
vscode下vue项目中eslint的使用方法
Jan 13 Javascript
微信公众号生成新浪短网址的实现(快速生成)
Aug 18 Javascript
vue 路由懒加载中给 Webpack Chunks 命名的方法
Apr 24 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
德劲1104的电路分析与改良
2021/03/01 无线电
php数组删除元素示例
2014/03/21 PHP
PHP的关于变量和日期处理的一些面试题目整理
2015/08/10 PHP
PHP动态地创建属性和方法, 对象的复制, 对象的比较,加载指定的文件,自动加载类文件,命名空间
2016/05/06 PHP
PHP处理二进制数据的实现方法
2016/06/13 PHP
PHP实现SMTP邮件的发送实例
2018/09/27 PHP
PHP程序员简单的开展服务治理架构操作详解(一)
2020/05/14 PHP
javascript 操作cookies及正确使用cookies的属性
2009/10/15 Javascript
Javascript 判断客户端浏览器类型代码
2010/03/01 Javascript
jQuery实现长文字部分显示代码
2013/05/13 Javascript
关于IE中getElementsByClassName不能用的问题解决方法
2013/08/26 Javascript
jQuery 中DOM 操作详解
2015/01/13 Javascript
基于jQuery实现的打字机效果
2017/01/16 Javascript
webpack4 + react 搭建多页面应用示例
2018/08/03 Javascript
vue组件之间通信方式实例总结【8种方式】
2019/02/22 Javascript
Django+Vue实现WebSocket连接的示例代码
2019/05/28 Javascript
jQuery 动态粒子效果示例代码
2020/07/07 jQuery
[54:25]Ti4 循环赛第三日LGD vs MOUZ
2014/07/12 DOTA
[01:07:53]RNG vs VG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
利用Python绘制数据的瀑布图的教程
2015/04/07 Python
用Python生成器实现微线程编程的教程
2015/04/13 Python
Django 生成登陆验证码代码分享
2017/12/12 Python
在python3中pyqt5和mayavi不兼容问题的解决方法
2019/01/08 Python
Python 实现微信防撤回功能
2019/04/29 Python
Python实现多线程/多进程的TCP服务器
2019/09/03 Python
Python生成验证码、计算具体日期是一年中的第几天实例代码详解
2019/10/16 Python
使用python动态生成波形曲线的实现
2019/12/04 Python
Pytorch之卷积层的使用详解
2019/12/31 Python
Python使用Excel将数据写入多个sheet
2020/05/16 Python
TUMI马来西亚官方网站:国际领先的高品质商旅箱包品牌
2018/04/26 全球购物
亚马逊新加坡官方网站:Amazon.sg
2020/03/25 全球购物
文秘专业毕业生就业推荐信
2013/11/08 职场文书
四风问题个人自查剖析材料思想汇报
2014/09/21 职场文书
演讲稿:​快乐,从不抱怨开始!
2019/04/02 职场文书
2019年农民幸福观调查的实践感悟
2019/12/19 职场文书
每日六道java新手入门面试题,通往自由的道路
2021/06/30 Java/Android