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 相关文章推荐
统一接口:为FireFox添加IE的方法和属性的js代码
Mar 25 Javascript
在Windows上安装Node.js模块的方法
Sep 25 Javascript
javascript函数定义的几种区别小结
Jan 06 Javascript
简介JavaScript中fixed()方法的使用
Jun 08 Javascript
node.js连接mongoDB数据库 快速搭建自己的web服务
Apr 17 Javascript
bootstrap布局中input输入框右侧图标点击功能
May 16 Javascript
JS实现可编辑的后台管理菜单功能【附demo源码下载】
Sep 13 Javascript
Bootstrap页面缩小变形的快速解决办法
Feb 03 Javascript
重新理解JavaScript的六种继承方式
Mar 24 Javascript
浅谈在react中如何实现扫码枪输入
Jul 04 Javascript
vue路由跳转传参数的方法
May 06 Javascript
Javascript 关于基本类型和引用类型的个人理解
Nov 01 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 将字符串按大写字母分隔成字符串数组
2010/04/30 PHP
PHP封装的HttpClient类用法实例
2015/06/17 PHP
学习php设计模式 php实现备忘录模式(Memento)
2015/12/09 PHP
PHP内核探索之变量
2015/12/22 PHP
用JavaScript页面不刷新时全选择,全删除(GridView)
2009/04/14 Javascript
ExtJS 2.0实用简明教程 之获得ExtJS
2009/04/29 Javascript
js 屏蔽鼠标右键脚本附破解方法
2009/12/03 Javascript
jquery实现居中弹出层代码
2010/08/25 Javascript
自己做的模拟模态对话框实现代码
2012/05/23 Javascript
JS简单实现文件上传实例代码(无需插件)
2013/11/15 Javascript
JavaScript类继承及实例化的方法
2015/07/25 Javascript
JS for循环中i++ 和 ++i的区别介绍
2016/07/20 Javascript
基于javascript的异步编程实例详解
2017/04/10 Javascript
原生js实现简单的链式操作
2017/07/04 Javascript
Angular4实现动态添加删除表单输入框功能
2017/08/11 Javascript
JS使用正则表达式获取小括号、中括号及花括号内容的方法示例
2018/06/01 Javascript
微信小程序实现Session功能及无法获取session问题的解决方法
2019/05/07 Javascript
微信小程序实现语音识别转文字功能及遇到的坑
2019/08/02 Javascript
Vue移动端项目实现使用手机预览调试操作
2020/07/18 Javascript
[03:52]DOTA2英雄基础教程 酒仙
2013/12/23 DOTA
Python写的Discuz7.2版faq.php注入漏洞工具
2014/08/06 Python
Python爬取读者并制作成PDF
2015/03/10 Python
使用Pyrex来扩展和加速Python程序的教程
2015/04/13 Python
python requests证书问题解决
2019/09/05 Python
Django Docker容器化部署之Django-Docker本地部署
2019/10/09 Python
Python+OpenCV实现实时眼动追踪的示例代码
2019/11/11 Python
使用Django搭建网站实现商品分页功能
2020/05/22 Python
python实现取余操作的简单实例
2020/08/16 Python
Matplotlib animation模块实现动态图
2021/02/25 Python
希腊香水和化妆品购物网站:Parfimo.gr
2019/10/03 全球购物
面向对象编程是如何提高软件开发水平的
2014/05/06 面试题
文体活动总结范文
2014/05/05 职场文书
关于晚自习早退的检讨书
2014/09/13 职场文书
教学反思怎么写
2016/02/24 职场文书
Android开发 使用文件储存的方式保存QQ密码
2022/04/24 Java/Android
CentOS7安装MySQL8的超级详细教程(无坑!)
2022/06/10 Servers