返回顶部
首页 > 资讯 > 精选 >vue+iview如何实现手机号分段输入框
  • 293
分享到

vue+iview如何实现手机号分段输入框

2023-06-29 16:06:16 293人浏览 薄情痞子
摘要

这篇文章主要讲解了“Vue+iview如何实现手机号分段输入框”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue+iview如何实现手机号分段输入框”吧!具体内容如下<templat

这篇文章主要讲解了“Vue+iview如何实现手机号分段输入框”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue+iview如何实现手机号分段输入框”吧!

具体内容如下

vue+iview如何实现手机号分段输入框

<template>  <div :class="{'ivu-fORM-item-error':!valid && dirty && validated}">    <div class="ivu-phone-input ivu-select  ivu-select-multiple ivu-select-default" @keydown.delete.prevent @click.stop>      <input type="text" class="ivu-select-selection number-block"             v-for="(item,index) in phoneLength" :key="index"             :ref="numberRefName+index"             @focus="handlerFocus"             @input="handlerInput($event,index)"             @keydown.delete.prevent="deleteNumber($event,index)"             @keydown.left.prevent="changeInput(index - 1)"             @keydown.right="changeInput(index + 1)"      />      <Icon type="iOS-close-circle" class="clean-btn" @click="cleanValue"/>    </div>  </div></template> <script>  export default {    data() {      return {        required: this.$attrs.hasOwnProperty('required'),        phoneLength: 11,        phoneReg: /^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\d{8}$/,        numberRefName: 'numberBlock',        validTimer: null,        dirty: false,        valid: false,        validated: false,      };    },    methods: {       handlerFocus() {        if (!this.dirty) {          this.dirty = this.required ? true : false;        }      },       handlerInput(e, index) {        if (!e.target.value) {          return;        }        this.dirty = true;        let value = e.target.value.replace(/\D+/g, '');        value = value ? value[0] : '';        //合法值,切换下一个输入框        if (value.length) {          this.changeInput(index + 1);        }        //#end        e.target.value = value;        this.debounceValidate();      },      changeInput(index) {        if (index < 0 || index === this.phoneLength) return;        const target = this.$refs[this.numberRefName + index][0];        target.focus();        if (target.value && target.setSelectionRange) {          target.setSelectionRange(1, 1);//maxlength="1" 时无效,所以去掉了...        }      },      deleteNumber(e, index) {        if (e.target.value) {          e.target.value = ''        } else {          this.changeInput(index - 1);        }      },      resetStatus() {        this.validated = false;        this.dirty = false;      },      cleanValue() {        this.resetStatus();        const numberBlocks = this.$refs;        for (let i in numberBlocks) {          numberBlocks[i][0].value = '';        }        if (this.required) {          const FormItem = this.getFormItem();          if (FormItem) {            FormItem.resetField();            FormItem.$emit('on-form-change', null);          }        }        // this.changeInput(0);      },      debounceValidate() {        this.validTimer = setTimeout(() => {          this.validate();        }, 300);      },      validate(isLeave) {        const numberBlocks = this.$refs;        let result = '';        for (let i in numberBlocks) {          result += numberBlocks[i][0].value;        }        if (result.length === this.phoneLength || isLeave) {          this.validated = true;          this.dispath({            value: result,            valid: this.valid = this.phoneReg.test(result),          });        }      },      dispath(info) {        this.$emit('input', info.valid ? info.value : '');        if (this.required) {          const FormItem = this.getFormItem();          if (FormItem) {            this.updateFormItem(FormItem, info.valid ? info.value : '');          }        }      },      getFormItem() {        let MAX_LEVEL = 3;        let parent = this.$parent;        let name = parent.$options.name;        while (MAX_LEVEL && name !== 'FormItem') {          MAX_LEVEL--;          if (!parent) return null;          parent = parent.$parent;        }        return parent || null;      },      updateFormItem(FormItem, data) {        FormItem.$emit('on-form-change', data);      },      pageEvent() {        if (this.dirty) {          this.validate(true);        }      },    },    created() {      window.addEventListener('click', this.pageEvent);    },    beforeDestroy() {      window.removeEventListener('click', this.pageEvent);    },  };</script> <style scoped lang="less">  .ivu-phone-input {    .clean-btn {      transition: opacity .5s;      opacity: 0;      cursor: pointer;    }    &:hover {      .clean-btn {        opacity: 1;      }    }  }   .number-block {    display: inline-block;    padding: 0;    height: 30px;    width: 28px;    text-align: center;    margin-right: 2px;    &:nth-child(3) {      margin-right: 10px;    }    &:nth-child(7) {      margin-right: 10px;    }  }</style>

感谢各位的阅读,以上就是“vue+iview如何实现手机号分段输入框”的内容了,经过本文的学习后,相信大家对vue+iview如何实现手机号分段输入框这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: vue+iview如何实现手机号分段输入框

本文链接: https://lsjlt.com/news/325730.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • vue+iview如何实现手机号分段输入框
    这篇文章主要讲解了“vue+iview如何实现手机号分段输入框”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue+iview如何实现手机号分段输入框”吧!具体内容如下<templat...
    99+
    2023-06-29
  • vue+iview实现手机号分段输入框
    vue + iview 实现一个手机分段的提示框,知识点还没总结,供大家参考,具体内容如下 <template>   <div :class="{'ivu-for...
    99+
    2024-04-02
  • 如何实现Android手机号码输入框
    这篇文章给大家分享的是有关如何实现Android手机号码输入框的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体代码如下所示:package com.jixiong.teen.view;import&n...
    99+
    2023-05-30
    android
  • uniapp手机验证码输入框如何实现
    本篇内容主要讲解“uniapp手机验证码输入框如何实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“uniapp手机验证码输入框如何实现”吧!如键盘被隐藏,可直接点击蓝框弹出键盘,蓝框就相当于i...
    99+
    2023-07-05
  • vue iview如何实现分页功能
    本篇内容介绍了“vue iview如何实现分页功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!子组件<template&g...
    99+
    2023-07-02
  • Vue如何实现动态渲染input输入框
    本文小编为大家详细介绍“Vue如何实现动态渲染input输入框”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue如何实现动态渲染input输入框”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。问题描述就比如现在...
    99+
    2023-07-04
  • vue中input输入框如何实现模糊查询
    这篇文章给大家分享的是有关vue中input输入框如何实现模糊查询的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Vue 模糊查询功能原理:原生js的search() 方法,用于检...
    99+
    2024-04-02
  • jquery如何实现数字输入框
    小编给大家分享一下jquery如何实现数字输入框,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!效果如下:代码如下:<!DO...
    99+
    2024-04-02
  • html如何实现输入框效果
    本篇内容介绍了“html如何实现输入框效果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • layui如何实现输入框中只允许输入整数
    小编给大家分享一下layui如何实现输入框中只允许输入整数,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!如下所示:<inp...
    99+
    2024-04-02
  • js如何实现限制输入框只能输入数字
    这篇文章主要介绍了js如何实现限制输入框只能输入数字,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。例子:html代码<input ty...
    99+
    2024-04-02
  • 纯css如何实现输入框placeholder动效及输入校验
    小编给大家分享一下纯css如何实现输入框placeholder动效及输入校验,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!背景话不多说,我们能否用纯css实现以下...
    99+
    2023-06-08
  • html5如何实现电子邮件输入框
    这篇文章主要介绍了html5如何实现电子邮件输入框,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。电子邮件输入框HMTL 5中新增了一个输入框的电子邮件属性,可以检测输入的内容...
    99+
    2023-06-27
  • html5输入框不能为空如何实现
    这篇文章主要介绍“html5输入框不能为空如何实现”,在日常操作中,相信很多人在html5输入框不能为空如何实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”html5输入框不能为空如何实现”的疑惑有所帮助!...
    99+
    2023-07-04
  • 如何实现input输入框内容实时监测
    小编给大家分享一下如何实现input输入框内容实时监测,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!输入框内容实时监测!只有输入...
    99+
    2024-04-02
  • 微信小程序如何实现input输入框
    小编给大家分享一下微信小程序如何实现input输入框,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!微信小程序 checkbox 实现效果图:微信小程序输入框input属性名类型默认值说明v...
    99+
    2024-04-02
  • CSS3如何实现提交意见输入框样式
    这篇文章主要介绍了CSS3如何实现提交意见输入框样式,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 做了个输入...
    99+
    2024-04-02
  • jquery如何实现输入框内容不能为空
    本文小编为大家详细介绍“jquery如何实现输入框内容不能为空”,内容详细,步骤清晰,细节处理妥当,希望这篇“jquery如何实现输入框内容不能为空”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起...
    99+
    2024-04-02
  • 如何用CSS实现简单大气的输入框
    这篇“如何用CSS实现简单大气的输入框”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何用CSS实现简单大气的输入框”文章吧...
    99+
    2023-07-05
  • vue3如何实现​6位支付密码输入框
    目录一、代码总览二、问题解析今天要和大家分享的是关于如何实现6位支付密码输入框组件。 因为在web端不像移动端那样,它没有成熟的、已封装好的6位支付密码输入框UI组件,所以需要我们自...
    99+
    2023-05-18
    vue3 支付密码输入框 vue 支付密码框
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作