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代码混淆综合解决方案-Javascript在线混淆器
Dec 18 Javascript
Google的跟踪代码 动态加载js代码方法应用
Nov 12 Javascript
js导出table到excel同时兼容FF和IE示例
Sep 03 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(二)
Sep 14 Javascript
JavaScript变量类型以及变量作用域详解
Aug 14 Javascript
jQuery实现的下雪动画效果示例【附源码下载】
Feb 02 jQuery
webpack css加载和图片加载的方法示例
Sep 11 Javascript
JS数组实现分类统计实例代码
Sep 30 Javascript
vue组件之间通信实例总结(点赞功能)
Dec 05 Javascript
Vue表情输入组件 微信face表情组件
Feb 11 Javascript
vue 搭建后台系统模块化开发详解
May 01 Javascript
微信小程序通过一个json实现分享朋友圈图片
Sep 03 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
解析thinkphp import 文件内容变量失效的问题
2013/06/20 PHP
php正则替换处理HTML页面的方法
2015/06/17 PHP
使用PHP接受文件并获得其后缀名的方法
2015/08/05 PHP
CI框架封装的常用图像处理方法(缩略图,水印,旋转,上传等)
2016/11/22 PHP
thinkphp5 migrate数据库迁移工具
2018/02/20 PHP
Javascript 同时提交多个Web表单的方法
2009/02/19 Javascript
JQuery jsonp 使用示例代码
2009/08/12 Javascript
js textarea自动增高并隐藏滚动条
2009/12/16 Javascript
JavaScript 弹出窗体点击按钮返回选择数据的实现
2010/04/01 Javascript
非常有用的40款jQuery 插件推荐(系列二)
2011/12/25 Javascript
JavaScript获得url查询参数的方法
2015/07/02 Javascript
JS+JSP通过img标签调用实现静态页面访问次数统计的方法
2015/12/14 Javascript
微信小程序 下拉列表的实现实例代码
2017/03/08 Javascript
js 函数式编程学习笔记
2017/03/25 Javascript
浅谈Angular路由复用策略
2017/10/04 Javascript
JavaScript的级联函数用法简单示例【链式调用】
2019/03/26 Javascript
聊聊鉴权那些事(推荐)
2019/08/22 Javascript
vue-cli和v-charts实现可视化图表过程解析
2019/10/08 Javascript
详解Webpack抽离第三方类库以及common解决方案
2020/03/30 Javascript
vant 自定义 van-dropdown-item的用法
2020/08/05 Javascript
微信小程序自定义胶囊样式
2020/12/27 Javascript
Python 异常处理实例详解
2014/03/12 Python
Python基于Twilio及腾讯云实现国际国内短信接口
2020/06/18 Python
让你相见恨晚的十个Python骚操作
2020/11/18 Python
简单html5代码获取地理位置
2014/03/31 HTML / CSS
新加坡航空官方网站:Singapore Airlines
2016/10/13 全球购物
Fox Racing官方网站:越野摩托车和山地自行车装备和服装
2019/12/23 全球购物
物流业务员岗位职责
2014/02/08 职场文书
《孔子游春》教学反思
2014/02/25 职场文书
合作协议书怎么写
2014/04/18 职场文书
大学生实习鉴定评语
2014/04/25 职场文书
班主任评语大全
2014/04/26 职场文书
升学宴家长致辞
2015/07/27 职场文书
主婚人致辞精选
2015/07/28 职场文书
结婚喜宴祝酒词
2015/08/10 职场文书
html+css实现分层金字塔的实例
2021/06/02 HTML / CSS