vue 实现 手机号中间4位分格输入框(暂无选中标识

vue 实现 手机号中间4位分格输入框

效果图
在这里插入图片描述


<!--4位分格输入框-->
<!--<template>
  <div>
    <div style="display: flex;">
      <div class="phone-input">
        <input
          v-for="(digit, index) in digits"
          :key="index"
          type="tel"
          :ref="`input-${index}`"
          v-model="digits[index]"
          maxlength="1"
          @input="handleInput(index)"
          @keydown="handleKeyDown(index, $event)"
          @focus="handleFocus(index)"
          class="digit"
          :class="{ 'active': activeIndex === index }"
        >
      </div>
      <div class="getCode" @click="validatePhoneNumber">获取验证码</div>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      digits: ['', '', '', '', '', '', '', '', '', '', ''],
      activeIndex: ''
    }
  },
  methods: {
    /*handleInput(index) {
      if (this.digits[index] && index < this.digits.length - 1) {
        this.focusNextInput(index);
      }
    },*/
    handleInput(index) {
      // Don't allow input to jump to next if the current index is 3 or 4
      if ((index === 3 || index === 4) && this.digits[index]) {
        return;
      }

      // Handle input logic for other cases
      if (this.digits[index] && index < this.digits.length - 1) {
        this.focusNextInput(index);
      }
    },
    handleKeyDown(index, event) {
      if (event.key === 'Backspace' && index > 0 && !this.digits[index]) {
        event.preventDefault();
        this.focusPreviousInput(index);
      }
      if (index===0&&event.key === 'Backspace') {
        this.activeIndex = '';
      }
    },
    handleFocus(index) {
      this.activeIndex = index;
    },
    /*focusNextInput(index) {
      this.$refs[`input-${index + 1}`][0].focus();
    },*/
    focusNextInput(index) {
      if (index === 2) {
        this.$refs[`input-${index + 2}`][0].focus();
      } else {
        this.$refs[`input-${index + 1}`][0].focus();
      }
    },
    focusPreviousInput(index) {
      this.$refs[`input-${index - 1}`][0].focus();
    },
    validatePhoneNumber() {
      const phoneNumber = this.digits.join('');
      // Perform phone number validation logic here
      // 针对手机号进行校验逻辑的代码
      this.activeIndex = '';
    }
  },
  mounted() {
    this.$nextTick(() => {
      // Focus on the first input when the component is mounted
      // this.$refs[`input-0`][0].focus();

      this.$nextTick(() => {
        const phone = '13240865213'; // Replace with actual phone number
        for (let i = 0; i < this.digits.length; i++) {
          if (i < 3 || i > 6) {
            this.digits[i] = phone[i];
          }
        }
        this.$refs[`input-3`][0].focus();
      });
    });
  },
  computed: {
    inputs() {
      return this.$refs.inputs;
    }
  }
}
</script>

<style>
.phone-input {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 40px;
  width: 615px;
}

.phone-input input {
  width: calc(100% / 11);
  height: 100%;
  border: solid 1px #ededed;
  margin-right: 15px;
  outline: none;
  text-align: center;
  font-size: 16px;
  border-radius: 6px;
  color: #0075ff;
}

.phone-input input.active {
  border-color: #0075ff;
}

.getCode {
  width: 120px;
  height: 40px;
  line-height: 40px;
  border: solid 1px #ededed;
  border-radius: 20px;
  color: #666;
  font-size: 16px;
  text-align: center;
}

.getCode:hover {
  cursor: pointer;
}
</style>-->          <el-table-column type="selection" width="55" align="center"></el-table-column>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/378350.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【递归】【前序中序后序遍历】【递归调用栈空间与二叉树深度有关】【斐波那契数】Leetcode 94 144 145

【递归】【前序中序后序遍历】【递归调用栈空间与二叉树深度有关】Leetcode 94 144 145 1.前序遍历&#xff08;递归&#xff09; preorder2.中序遍历&#xff08;递归&#xff09;inorder3.后序遍历&#xff08;递归&#xff09;postorder4. 斐波那契数 ---------------&…

洞察 Electric Capital 2023 年开发者报告,找准未来 Web3 开发趋势

作者&#xff1a;Electric Capital 编译&#xff1a;TinTinLand 原文链接&#xff1a;https://www.developerreport.com/developer-report 近期&#xff0c;Electric Capital 发布了 2023 年年度加密开发者报告&#xff0c;对 818k 开源存储库中的 4.85 亿次代码提交进行分析…

【C语言】通过socket看系统调用过程

一、通过socket看系统调用过程 在Linux操作系统中&#xff0c;系统调用是用户空间与内核空间之间交互的一种方式。当一个应用程序需要执行操作系统级别的任务时&#xff0c;比如创建一个网络套接字&#xff08;socket&#xff09;&#xff0c;它必须通过系统调用请求内核来执行…

JavaSE——数组(1/2)-数组的定义和访问(静态初始化数组、动态初始化数组、案例练习)

目录 数组的定义和访问 静态初始化数组 数组的访问 数组的遍历 案例练习 动态初始化数组 案例练习 数组是什么 数组就是一个容器&#xff0c;用来存储一批同种类型的数据。 例子&#xff1a; 20&#xff0c;10&#xff0c;80&#xff0c;60&#xff0c;90 int[ ] arr …

STM32/C51开发环境搭建(KeilV5安装)

Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统&#xff0c;与汇编相比&#xff0c;C语言在功能上、结构性、可读性、可维护性上有明显的优势&#xff0c;因而易学易用。Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等…

第59讲订单数据下拉实现

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;/*** 订单查询 type值 0 全部订单 1待付款 2 待收货 3 退款/退货* param type* return*/RequestMapping("/list")public R list(Integer type,Integer page,Integer pageSize){System.out.pri…

【C++基础入门】七、指针(定义和使用、所占内存空间、空指针和野指针、const关键字修饰指针、指针和数组、指针和函数)

七、指针 7.1 指针的基本概念 指针的作用&#xff1a; 可以通过指针间接访问内存 内存编号是从0开始记录的&#xff0c;一般用十六进制数字表示可以利用指针变量保存地址 7.2 指针变量的定义和使用 指针变量定义语法&#xff1a; 数据类型 * 变量名&#xff1b; 示例&…

统一身份认证系统架构设计与实践总结

随着互联网的快速发展和应用的普及&#xff0c;人们在各个网站和应用上需要不同的账号和密码进行身份认证。为了解决这个问题&#xff0c;统一身份认证系统应运而生。本文将总结统一身份认证系统的架构设计与实践经验&#xff0c;帮助读者了解如何设计和实现一个高效、安全的统…

一、OpenAI API介绍

Open AI API可以应用到任何的业务场景。 文本生成 创造助理 嵌入数据 语音转化 图片生成 图片输入 1. 核心概念 1.1 Text generation models OpenAI 的文本生成模型(通常被称为generative pre-trained transformers 模型简称&#xff1a;GPT),有GPT-4和G…

《学成在线》微服务实战项目实操笔记系列(P1~P83)【上】

史上最详细《学成在线》项目实操笔记系列【上】&#xff0c;跟视频的每一P对应&#xff0c;全系列12万字&#xff0c;涵盖详细步骤与问题的解决方案。如果你操作到某一步卡壳&#xff0c;参考这篇&#xff0c;相信会带给你极大启发。 一、前期准备 1.1 项目介绍 P2 To C面向…

Eclipse 安装使用ABAPGit

Eclipse->Help->Install New software 添加地址 https://eclipse.abapgit.org/updatesite/ 安装完成打开 选择abapGit repositories,先添加仓库 点下图添加自己仓库 如图添加仓库地址 添加完仓库后&#xff0c;点击我的仓库 右键选中行&#xff0c;可以进行push和pu…

代码随想录算法训练营第42天 | 01背包理论基础 416.分割等和子集

01背包理论基础 问题定义&#xff1a;有n件物品和一个能装重量为w的背包&#xff0c;第i件物品的重量是weight[i]&#xff0c;得到的价值是value[i]。每件物品只能用一次&#xff0c;求解将哪些物品装入背包获得的总价值最大。dp数组含义&#xff1a;dp[i][j] 表示从下标为 [0…

springboot基础案例(二)

文章目录 前言一.需求分析: 分析这个项目含有哪些功能模块二.库表设计(概要设计): 1.分析系统有哪些表 2.分析表与表关系 3.确定表中字段(显性字段 隐性字段(业务字段))2.1 创建一个库: ems-thymeleaf2.2 创建 2张表三.编码(环境搭建)1.创建一个springboot项目 项目名字: ems-t…

Ubuntu环境下安装部署Nginx(有网)

本文档适用于在Ubuntu20.04系统下部署nginx 一、使用apt-get命令安装nginx 注&#xff1a;以下命令都是在root用户下使用 1. 检查是否存在apt命令 apt –version 说明&#xff1a;出现版本号就说明当前环境存在apt 2. 更新apt命令 apt update 3. 安装nginx apt-get in…

【保姆级教程|YOLOv8改进】【7】多尺度空洞注意力(MSDA),DilateFormer实现暴力涨点

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

Minecraft 上 An Existing Connection Was Forcibly Closed by the Remote Host 错误

本篇文章介绍了使用 Minecraft 时出现远程主机错误强制关闭现有连接的原因和解决方案。 Minecraft 上 Java.IO.IOException: An Existing Connection Was Forcibly Closed by the Remote Host 原因 Minecraft 是一款使用 Java 开发的流行游戏。 由于其流行&#xff0c;服务器…

jxls 2.4.5 —— 动态导出excel 表头与数据

文章目录 前言依赖引入制作导出模板测试类导出效果注意事项 前言 再之前的博客中&#xff0c;介绍了jxls的基础使用。但导出表头属于写死的&#xff0c;并未采取动态渲染。 本次进行动态渲染操作&#xff0c;动态渲染表头和填充数据。 依赖引入 springboot测试项目中&#…

AdaBoost算法

Boosting是一种集成学习方法&#xff0c;AdaBoost是Boosting算法中的一种具体实现。 Boosting方法的核心思想在于将多个弱分类器组合成一个强分类器。这些弱分类器通常是简单的模型&#xff0c;比如决策树&#xff0c;它们在训练过程中的错误会被后续的弱分类器所修正。Boosti…

多元回归分析:理论与应用

多元回归分析是一种统计方法&#xff0c;用于研究两个或多个自变量&#xff08;解释变量&#xff09;与一个因变量&#xff08;响应变量&#xff09;之间的关系。这种分析允许研究者评估多个因素对结果变量的影响&#xff0c;是社会科学、经济学、生物医学和工程等多个领域中常…

SolidWorks学习笔记——入门知识1

目录 1、固定最近文档 2、根据需要自定义菜单栏 3、根据需要增添选项卡 4、命令搜索框 5、鼠标右键长按快速切换视图 6、鼠标笔势 自定义鼠标笔势 1、固定最近文档 图1 固定最近文档 2、根据需要自定义菜单栏 图2 根据需要自定义菜单栏 3、根据需要增添选项卡 图3 根据…
最新文章