美文网首页
Form表单回车后聚焦下一个元素的超优雅方案

Form表单回车后聚焦下一个元素的超优雅方案

作者: 蛰伏已久_d38b | 来源:发表于2023-06-11 12:47 被阅读0次

简介

v-focus-next是一个Vue指令,使用该指令后,在表单的某个元素中输入回车符,可以自动聚焦到下一个表单元素,避免了用户通过鼠标来回选中表单元素,大大提升了表单填写的效率和用户体验。

《演示效果》

v-focus-next的使用非常简单。

只需要为某个Dom或Vue组件(如div、form、ElForm等)绑定v-focus-next指令,则该Dom下的所有input/textarea自动支持回车聚焦功能,无需任何其他配置。

支持以下特性:

  • 默认会将所有input/textarea加入回车聚焦功能,也可通过指定className等方式,将部分表单元素支持回车聚焦。
  • 支持首个表单元素自动聚焦
  • 支持任意普通Dom元素和Vue组件
  • 自动过滤掉disable的元素及type为hidden、radio、checkbox、file、submit、reset的元素
  • 支持vue2/3

使用

安装

npm install v-focus-next

项目中引入

通过use方式,引入该指令中间件。

Vue3示例:

import { createApp } from 'vue'
import App from './App.vue'
import vFocusNext from "v-focus-next";

let app = createApp(App)
app.use(vFocusNext)  //通过中间件方式引入指令
app.mount('#app')

Vue2示例:

import Vue from 'vue'
import App from './App.vue'
import vFocusNext from "v-focus-next";

Vue.use(vFocusNext); //通过中间件方式引入指令

new Vue({
  render: h => h(App),
}).$mount('#app')

示例1

只需为某个父元素增加v-focus-next指令,则其中所有表单元素就拥有了回车聚焦功能。

 <div v-focus-next>
    <input placeholder="输入回车自动聚焦下一行"/>
    <input/>
    <input/>
    <input/>
    <input/>
    <textarea  />
</div>

Vue组件也是一样的,如为el-form添加v-focus-next指令。

<el-form v-focus-next >
    <el-form-item label="名称">
        <el-input v-model="form.name" id="name" />
    </el-form-item>
    <el-form-item label="年龄">
        <el-input v-model="form.age" id="age" disabled />
    </el-form-item>
 </el-form>

示例2:指定参与回车聚焦的元素

或许你不想所有表单元素都参与回车聚焦,比如只想让所有设置了class为'test'的元素参与回车聚焦,只需要设置 v-focus-next="'.test'",可设为querySelectorAll支持的参数形式。

<div v-focus-next="'.test'">
    <input class="test"/>
    <input />
    <input class="test"/>
</div>

示例3:自动聚焦首个元素

只需设置v-focus-next.autoFocus即可。

<div v-focus-next.autoFocus>
    <input />  //自动聚焦
    <input />
    <input />
</div>

欢迎试用点赞

欢迎大家用到自己的项目中,让表单一路Next。
源码: https://github.com/501351981/v-focus-next

相关文章

  • 中文输入法之input框回车后在不同浏览器间的差异(vue)

    需求,表单内只存在一个input框时,回车后需要触发表单提交事件 问题一:回车后页面刷新 解决方案: 在form表...

  • 去掉elementUI表单自动提交

    问题现象: 当使用el-form时,若表单中只有一个el-input表单元素,当回车时就会发生表单的自动提交,现象...

  • HTML表单的用法

    html表单用于搜集不同类型的用户输入。

    元素 form元素定义html表单 HTML 表单包含表单元...

  • HTML表单的用法

    1、关于form表单的基础 form表单:是一个包含表单元素的区域;作用,用于包裹表单元素。 表单元素:是允许用户...

  • vue enter 刷新页面

    el-form表单里,给el-input标签添加enter事件,回车时刷新页面 解决方案:在el-form标签里添...

  • form 表单

    form表单用于收集填写的信息,提交后台,表单的元素用form包括所有的元素,形成完整的数据。 form表单常见标...

  • 前端调试指南指北

    1. 防止input回车提交表单Form 描述: form表单中存在button和table,table中含有in...

  • 3_H5增强表单

    H5增强的表单 form元素及属性 form元素 用来定义一个表单,是建立表单的基础元素,(就类似定义表格的tab...

  • HTML表单用法

    HTML 表单用于搜集不同类型的用户输入。 1. 元素: 元素定义 HTML 表单 1.<...

  • 2018-07-17前端表单制作

    一 表单制作(form) 1.表单制作元素 列如 < title>元素表单 ...

网友评论

      本文标题:Form表单回车后聚焦下一个元素的超优雅方案

      本文链接:https://www.haomeiwen.com/subject/yvwxydtx.html