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中delete操作符不能删除的对象
Dec 03 Javascript
js与jQuery 获取父窗、子窗的iframe
Dec 20 Javascript
Jquery 过滤器(first,last,not,even,odd)的使用
Jan 22 Javascript
JS仿iGoogle自定义首页模块拖拽特效的方法
Feb 13 Javascript
JS+CSS实现的拖动分页效果实例
May 11 Javascript
JavaScript判断用户名和密码不能为空的实现代码
May 16 Javascript
Jquery实现遮罩层的简单实例(就是弹出DIV周围都灰色不能操作)
Jul 14 Javascript
vue实现自定义多选与单选的答题功能
Jul 05 Javascript
Vue引入Stylus知识点总结
Jan 16 Javascript
Vue设置长时间未操作登录自动到期返回登录页
Jan 22 Javascript
antd form表单数据回显操作
Nov 02 Javascript
梳理一下vue中的生命周期
Dec 30 Vue.js
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新手上路(十)
2006/10/09 PHP
php中邮箱地址正则表达式实现与详解
2012/04/24 PHP
php检测文件编码的方法示例
2014/04/25 PHP
php安装swoole扩展的方法
2015/03/19 PHP
PHP使用preg_split()分割特殊字符(元字符等)的方法分析
2017/02/04 PHP
jQuery源码分析-02正则表达式 RegExp 常用正则表达式
2011/11/14 Javascript
点击隐藏页面左栏或右栏实现js代码
2013/04/01 Javascript
JavaScript标准对象_动力节点Java学院整理
2017/06/27 Javascript
React Native第三方平台分享的实例(Android,IOS双平台)
2017/08/04 Javascript
JS实现点击循环切换显示内容的方法
2017/10/19 Javascript
Vue Element使用icon图标教程详解(第三方)
2018/02/07 Javascript
详解Angular cli配置过程记录
2019/11/07 Javascript
一篇文章带你浅入webpack的DLL优化打包
2020/02/20 Javascript
在Vue中使用CSS3实现内容无缝滚动的示例代码
2020/11/27 Vue.js
Cython 三分钟入门教程
2009/09/17 Python
详解python中xlrd包的安装与处理Excel表格
2016/12/16 Python
python的dataframe转换为多维矩阵的方法
2018/04/11 Python
使用python实现快速搭建简易的FTP服务器
2018/09/12 Python
Python中文件的写入读取以及附加文字方法
2019/01/23 Python
一篇文章搞定Python操作文件与目录
2019/08/13 Python
Django通过json格式收集主机信息
2020/05/29 Python
Python基于traceback模块获取异常信息
2020/07/23 Python
python pip如何手动安装二进制包
2020/09/30 Python
css3的@media属性实现页面响应式布局示例代码
2014/02/10 HTML / CSS
台湾深度自由行旅游平台:Tripbaa趣吧
2017/10/10 全球购物
Python中pass语句的作用是什么
2016/06/01 面试题
自考毕业生自我鉴定
2013/11/04 职场文书
如何掌握自荐信格式呢
2013/11/19 职场文书
团组织关系介绍信
2014/01/12 职场文书
优秀党员学习焦裕禄精神思想汇报范文
2014/09/10 职场文书
公务员个人考察材料
2014/12/23 职场文书
上课迟到检讨书范文
2015/05/06 职场文书
风雨哈佛路观后感
2015/06/03 职场文书
Django给表单添加honeypot验证增加安全性
2021/05/06 Python
python 爬取哔哩哔哩up主信息和投稿视频
2021/06/07 Python
什么是动态刷新率DRR? Windows11动态刷新率功能介绍
2021/11/21 数码科技