vue实现input文本框只能输入0-99的正整数问题

 更新时间:2022年10月21日 14:11:06   作者:前端李小白  
这篇文章主要介绍了vue实现input文本框只能输入0-99的正整数问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

vue input文本框只能输入0-99的正整数

利用vue里面自带的watch监听器就可以了。话不多说,直接贴代码。

            <div class="age-select">
            <input type="text" class="fromAge-input" v-model="fromAge" />至
            <input type="text" class="toAge-input" v-model="toAge" />
            </div>

data里面

     data () { return{ 
      fromAge: '0', 
       toAge: '99'
       } 
       }

在watch里面:

    watch: {
        fromAge (newName, oldName) {
          var reg = /^([1-9]\d|\d)$/
          if (!reg.test(newName)) {
            this.fromAge = ''
          } else {
            this.fromAge = newName
          }
        },
        toAge (newName, oldName) {
          var reg = /^([1-9]\d|\d)$/
          if (!reg.test(newName)) {
            this.toAge = ''
          } else {
            this.toAge = newName
          }
        }
      },

效果如下:

这里输入框只能输入0-99的正整数,如果不是的话就会清空掉数字。如果我们还想加入前面的数字不能大于后面的数字的话,我们只需要在需要的方法里面加一个判定条件就可以了。代码如下:

     if (this.fromAge > this.toAge) {                    /* 如果起始年龄大于结束年龄的话,显示提示框 */
            return this.$message.error('起始年龄不能大于结束年龄')
          }

效果如下:

通过自定义指令实现文本框只能输入正整数

directives: {
    numInput(el) {
      el.addEventListener("keypress", function (e) {
        e = e || window.event;
        let charcode = typeof e.charCode === "number" ? e.charCode : e.keyCode;
        let re = /\d/;
        if (
          !re.test(String.fromCharCode(charcode)) &&
          charcode > 9 &&
          !e.ctrlKey
        ) {
          if (e.preventDefault) {
            e.preventDefault();
          } else {
            e.returnValue = false;
          }
        }
      });
    },
  },

使用

 <input type="text" v-numInput  />

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • VUE项目中引入vue-router的详细过程

    VUE项目中引入vue-router的详细过程

    vue-router 也叫 vue 路由,根据不同的路径,来执行不同的组件,这篇文章主要介绍了VUE项目中引入vue-router,需要的朋友可以参考下
    2023-05-05
  • 如何在vue-cli中使用css-loader实现css module

    如何在vue-cli中使用css-loader实现css module

    这篇文章主要介绍了如何在vue-cli中使用css-loader实现css module,帮助大家更好的理解和使用vue框架,感兴趣的朋友可以了解下
    2021-01-01
  • vue组件学习教程

    vue组件学习教程

    这篇文章主要为大家详细介绍了vue组件学习教程,根据Vue官方文档学习的笔记,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • Vue.js特性Scoped Slots的浅析

    Vue.js特性Scoped Slots的浅析

    这篇文章主要介绍了Vue.js特性Scoped Slots的浅析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-02-02
  • vue3封装Notification组件的完整步骤记录

    vue3封装Notification组件的完整步骤记录

    在我们使用vue的开发过程中总会遇到这样的场景,封装自己的业务组件,下面这篇文章主要给大家介绍了关于vue3封装Notification组件的完整步骤,本文通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-03-03
  • vue自定义封装指令以及实际使用

    vue自定义封装指令以及实际使用

    市面上大多数关于Vue.js自定义指令的文章都在讲语法,很少讲实际的应用场景和用例,下面这篇文章主要给大家介绍了关于vue自定义封装指令以及实际使用的相关资料,需要的朋友可以参考下
    2022-01-01
  • Vue3 v-bind 指令的基本用法

    Vue3 v-bind 指令的基本用法

    在 Vue 3 中,v-bind 指令用于将表达式的值绑定到 DOM 元素的属性上,这个指令的语法与 Vue 2 相同,但有一些细微的变化和改进,这篇文章主要介绍了Vue3 v-bind 指令的基本用法,需要的朋友可以参考下
    2024-08-08
  • Vue3 setup中使用$refs的方法详解

    Vue3 setup中使用$refs的方法详解

    在 Vue 3 中的 Composition API 中,$refs 并不直接可用于 setup 函数,但是实际工作中确实有需求,那么该如何解决呢,本文为大家整理了两个方案,希望对大家有所帮助
    2023-08-08
  • Vue3插槽(slot)使用方法详解

    Vue3插槽(slot)使用方法详解

    在VUE开发项目的过程中,插槽<slot>是重要的承载分发内容的出口,下面这篇文章主要给大家介绍了关于Vue3插槽(slot)使用的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-11-11
  • hansontable在vue中的基本使用教程

    hansontable在vue中的基本使用教程

    handsontable是目前在前端界最接近excel的插件,可以执行编辑,复制粘贴,插入删除行列,排序等复杂操作,这篇文章主要介绍了hansontable在vue中的基本使用,需要的朋友可以参考下
    2022-10-10

最新评论