当前位置: 首页 > article >正文

解决弹窗中form表单中按下tab键不切换的问题

开发过程中碰到el-dialog中使用的form组件,按下键盘tab键不会切换到下一个,普通页面就正常切换。

解决办法

<ElInput
    ref="newPWDInput"
    v-model="newPWD"
    :clearable="true"
    :maxlength="16"
    :tabindex="2"
    :type="passwordVisible ? 'text' : 'password'"
    oncopy="return false"
    oncut="return false"
    placeholder="设置新密码"
    @keydown.tab="handleTab($event, 'repeatPWDInput')"
  >
    <!-- 省略其他代码 -->
  </ElInput>
</ElFormItem>
<ElFormItem
  :prop="'repeatPWD'"
  :rules="[
    {
      validator: validateRepeatPWD,
      trigger: ['blur'],
    },
  ]"
>
  <ElInput
    ref="repeatPWDInput"
    v-model="repeatPWD"
    :clearable="true"
    :maxlength="16"
    :tabindex="3"
    oncopy="return false"
    oncut="return false"
    :type="rePasswordVisible ? 'text' : 'password'"
    placeholder="请再次输入密码"
    @keyup.enter="onConfirm"
    @keydown.tab="handleTab($event, 'newPWDInput')"
  >
    <!-- 省略其他代码 -->
  </ElInput>
<script setup lang="ts">
import { ref } from 'vue';
// 省略其他导入代码

const newPWDInput = ref(null);
const repeatPWDInput = ref(null);

const handleTab = (event, nextInputRef) => {
  event.preventDefault(); // 阻止默认的 Tab 键行为
  if (nextInputRef === 'newPWDInput') {
    newPWDInput.value.focus();
  } else if (nextInputRef === 'repeatPWDInput') {
    repeatPWDInput.value.focus();
  }
};

// 省略其他代码
</script>

这样只适合input框少的时候解决办法,多的情况下就得考虑别的方案了。
大家有没有好的办法呢?


http://www.kler.cn/a/556579.html

相关文章:

  • 神经网络剪枝技术的重大突破:sGLP-IB与sTLP-IB
  • MTK-Android13-包安装器PackageInstaller 静默安装实现
  • 直播美颜SDK的底层技术解析:图像处理与深度学习的结合
  • 【详细讲解在STM32的UART通信中使用DMA机制】
  • 51单片机-8X8LED点阵
  • RagFlow+Ollama 构建RAG私有化知识库
  • python自动化制作常规的日报数据可视化
  • SpringBoot:解决前后端请求跨域问题(详细教程)
  • Blender小技巧和注意事项
  • CSS Grid 布局学习笔记
  • vue 判断一个属性值,如果是null或者空字符串或者是空格没有值的情况下,赋值为--
  • 国产编辑器EverEdit - 如何在EverEdit中管理工程?
  • DeepSeek掘金——VSCode 接入DeepSeek V3大模型,附使用说明
  • Unity 适用于单机游戏的红点系统(前缀树 | 数据结构 | 设计模式 | 算法 | 含源码)
  • Unity面板介绍_层级面板(23.1.1)
  • Flutter与移动开发的未来:谷歌的技术愿景与实现路径
  • Perl 面向对象编程指南
  • Webpack的持久化缓存机制具体是如何实现的?
  • http+nginx
  • windows上vscode cmake工程搭建