是通过正则来限制输入框输入的值(通过正则就可以自定义规则)

1. 先提前声明了两个数据,一个是与后端交互的合法值,一个是展示的临时值

 // 表单信息const calculationForm = reactive({yearsInsAmount: 3000,busInsAmount: 2050,comInsAmount: 950,})// 表单模板信息const calculationFormTemp = reactive({yearsInsAmount: 3000,busInsAmount: 2050,comInsAmount: 950,})

2. input框通过v-model双向数据绑定临时值,通过input事件监听用户输入的值

<input v-model="calculationFormTemp.yearsInsAmount"placeholder="请输入"@input="onYearPriceChange($event)"
></input>

3. 提前定义一个正则表达式,当用户输入时触发input事件,获取用户输入的value值

a. 判断用户输入的值是否符合正则,符合的话将临时值同步到与后端交互的合法值,

b. 当用户输入不符合正则的值,先将输入value赋值给临时值,再通过nextTick()当DOM渲染完成后在将与上一次保存的与后端交互的合法值在赋值给那个临时值,达到限制输入非法值的效果

  // 匹配数字和小数点const reg = /(^0(\.\d{0,2})?$)|(^[1-9]\d*(\.\d{0,2})?$)/const onYearPriceChange = (value) => {if (reg.test(value) || value == '') {calculationForm.yearsInsAmount = +value)return}calculationFormTemp.yearsInsAmount = valuenextTick(() => {calculationFormTemp.yearsInsAmount = calculationForm.yearsInsAmount})}

需要注意的点:数据初始化时和赋值时,临时值和合法值必须一起赋值

限制Input框输入非法值相关推荐

  1. vue自定义组件数据双向绑定,获取vue自定义组件input框输入的值

    1.首先创建一个自定义组件 Vue.component('test-component',{template:`<div id="el"><input @inpu ...

  2. 通过js获得input文本框输入的值

    如何通过js获得input文本框输入的值. 前言 我们编写的被载入浏览器的HTML页面都是一个 Document 对象.对于Document对象可以使我们通过代码(比如javascript)对HTML ...

  3. 如何禁止input框输入特殊字符

    如何禁止input框输入特殊字符 前端开发中可能会碰到input框禁止输入特殊字符的情况,下面是解决办法,输入框内只能输入字母数字和基本汉字,亲测有效. HTML部分 <div class=&q ...

  4. js复制input 框中的值

    js复制input 框中的值 function copy(){ var Url2=document.getElementById("copyValue"); Url2.select ...

  5. js控制input框输入数字时,累计求和

    input框输入数字时,自动开始计算累加 <div class="form-group"> <label for="inputPassword3&quo ...

  6. 【杂记】(input获取焦点失去焦点、获取input中输入的值、 键盘事件、js事件、Math 属性、手机自适应meta定义、 去掉input内置阴影、图片居中、去蓝色默认背景、点击去掉默认边框)

    1. input获取焦点失去焦点 input:focus{border:1px red solid:} 获取焦点 .focus()失去焦点.blur() 2. 获取input中输入的值 <inp ...

  7. vue,原生html—input框输入银行卡4位分开、手机号344分隔

    vue,原生html-input框输入银行卡4位分开.手机号344分隔 效果图: 1.uni-app写input框 (注意type类型不能为number,这是一个坑,我理解到-数字框只能输入数字不能显 ...

  8. Form表单验证神器: BootstrapValidator常见的坑,input框的value值改变二次验证不了?

    BootstrapValidator表单验证是通常是用来设置form表单提交时,限制某些字段不能为空,为空时type="submit"的按钮一直提交不了,如下图 +++++++++ ...

  9. html页面input框输入不了,input框不能输入问题

    input框不能输入问题 今天在写程序设计登录页面的时候遇到了一个问题:输入框不能输入! 就是我写着写着想测试一下功能,就发现输入框不能输入了.???还能出现这种问题??就很疑惑,然后就搜了搜无法输入 ...

最新文章

  1. linux 搭建dns
  2. [YTU]_2478( C++习题 虚函数-计算图形面积)
  3. 内核与ramdisk到底是什么关系?
  4. jsp里面声明了utf-8格式,也写了字符编码过滤器,数据库编码也是utf-8,就连java.......
  5. j - cyk追楠神系列一_阿迪达斯双十一携手脱口秀大咖,开启“羽绒不服·不服请就位”专场直播 - 消费...
  6. HUD2795 线段树(单点更新)
  7. 03-类与对象——课后动手动脑
  8. PAT 1003 Emergency 递归记录访问路径
  9. 从AI打王者荣耀到自动驾驶,高通一口气公布了5G+AI未来的无数种可能
  10. Laravel 安装mysql、表增加模拟数据、生成控制器
  11. BZOJ 2878: [Noi2012]迷失游乐园( 树形dp )
  12. STM32 F4 General-purpose Timers for Periodic Interrupts
  13. 解决pre-commit hook failed (add --no-verify to bypass)的问题
  14. How to add libraries to “External Libraries” in WebStorm/PhpStorm/Intellij
  15. python DataFrame数据分组统计groupby()函数
  16. JavaScript在线手册
  17. 51单片机之动态数码管显示
  18. ORACLE利用序列实现ID自增
  19. 如何安装projectlombok
  20. HDU -- 免费馅饼(ACM Step: 3.2.8)

热门文章

  1. 又一家数据公司被查,爬虫到底做错了什么?
  2. 计算机网络实验五:交换机中交换表的自学习功能
  3. vuex mutations commit
  4. 《Linux那些事儿之我是USB》我是U盘(22)彼岸花的传说(一)
  5. 集合(Collection、Map)
  6. 绝句死守(其三)-杜甫
  7. ASP.NET站点使用IP或域名访问的connectionStrings配置方法
  8. JavaScript之点击按钮进行网页跳转
  9. 【软考】软件工程结构化开发复习指南
  10. Mac Intrellij IDEA中使用debug调试