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 相关文章推荐
父窗口获取弹出子窗口文本框的值
Jun 27 Javascript
解放web程序员的输入验证
Oct 06 Javascript
js获取网页高度(详细整理)
Dec 28 Javascript
js监控IE火狐浏览器关闭、刷新、回退、前进事件
Jul 23 Javascript
用javascript关闭本窗口技巧小结
Sep 05 Javascript
使用JavaScript 编写简单计算器
Nov 24 Javascript
基于iscroll.js实现下拉刷新和上拉加载效果
Nov 28 Javascript
jQuery基于正则表达式的表单验证功能示例
Jan 21 Javascript
JavaScript实现左右下拉框动态增删示例
Mar 09 Javascript
浅谈箭头函数写法在ReactJs中的使用
Aug 22 Javascript
JS对日期操作封装代码实例
Nov 08 Javascript
JavaScript实现好看的跟随彩色气泡效果
Feb 06 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
给apache2.2加上mod_encoding模块後 php5.2.0 处理url出现bug
2007/04/12 PHP
php array_map array_multisort 高效处理多维数组排序
2009/06/11 PHP
简单三步,搞掂内存泄漏
2007/03/10 Javascript
两种WEB下的模态对话框 (asp.net或js的分别实现)
2009/12/02 Javascript
javascript 操作符(~、&amp;、|、^、)使用案例
2014/12/31 Javascript
jquery实现漫天雪花飞舞的圣诞祝福雪花效果代码分享
2015/08/20 Javascript
详解JavaScript异步编程中jQuery的promise对象的作用
2016/05/03 Javascript
解析JavaScript中的字符串类型与字符编码支持
2016/06/24 Javascript
ExtJS 4.2 Grid组件单元格合并的方法
2016/10/12 Javascript
微信小程序(应用号)开发新闻客户端实例
2016/10/24 Javascript
JS扩展类,克隆对象与混合类实例分析
2016/11/26 Javascript
tablesorter.js表格排序使用方法(支持中文排序)
2017/02/10 Javascript
JS简单判断滚动条的滚动方向实现方法
2017/04/28 Javascript
JS使用正则表达式验证身份证号码
2017/06/23 Javascript
Vue.js移动端左滑删除组件的实现代码
2017/09/08 Javascript
ES6学习教程之对象字面量详解
2017/10/09 Javascript
jQuery读取本地的json文件(实例讲解)
2017/10/31 jQuery
GOJS+VUE实现流程图效果
2018/12/01 Javascript
JavaScript中this用法学习笔记
2019/03/17 Javascript
详解Vue之事件处理
2020/07/10 Javascript
[36:29]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 LGD vs TNC
2018/04/02 DOTA
详解Python开发中如何使用Hook技巧
2017/11/01 Python
Python利用ORM控制MongoDB(MongoEngine)的步骤全纪录
2018/09/13 Python
对Xpath 获取子标签下所有文本的方法详解
2019/01/02 Python
pygame实现俄罗斯方块游戏(基础篇1)
2019/10/29 Python
python实现指定ip端口扫描方式
2019/12/17 Python
PyCharm Community安装与配置的详细教程
2020/11/24 Python
ProForm英国站点:健身房和健身器材网上商店
2019/06/05 全球购物
Jacadi Paris英国官网:法国童装品牌
2019/08/09 全球购物
英国时尚和家居用品零售商:Matalan
2021/02/28 全球购物
工程师求职简历的自我评价分享
2013/10/10 职场文书
探亲假请假条
2014/04/11 职场文书
槐乡的孩子教学反思
2014/04/27 职场文书
2015年六一儿童节演讲稿
2015/03/19 职场文书
社区党支部承诺书
2015/04/29 职场文书
python如何在word中存储本地图片
2021/04/07 Python