HTML input 实现回车切换到下一个输入框功能

前言

遇到需求,在客户填写单子时,有多个输入框,为了省事,不需要频繁移动光标填写。

实现效果

在这里插入图片描述

实现方式一

HTML

  <input type="text" name="serialNumber1" onkeydown="cursor(this);"/><input type="text" name="serialNumber2" onkeydown="cursor(this);"/><input type="text" name="serialNumber3" onkeydown="cursor(this);"/><input type="text" name="serialNumber4" onkeydown="cursor(this);"/>

JS

function focusNextInput(thisInput) {var inputs = document.getElementsByTagName("input");// 如果是最后一个,则焦点回到第一个for (var i = 0; i < inputs.length; i++) { if (i == (inputs.length - 1)) {inputs[0].focus(); break;} else if (thisInput == inputs[i]) {// 聚焦到该输入框,确保光标可见  inputs[i + 1].focus(); break;}}
}
function cursor(obj) {if (event.keyCode == 13) {focusNextInput(obj);}
}

实现方式二(推荐使用)

HTML

  <input type="text" name="serialNumber1" /><input type="text" name="serialNumber2" /><input type="text" name="serialNumber3" /><input type="text" name="serialNumber4" />

JS

$(document).ready(function () {$('input').on('keypress', function(event) {  // 在这里处理按键事件  if (event.keyCode == 13) { // 如果按下的是回车键  // 调用 focusNextInput 函数并传递当前的 input 元素  // 同上方法focusNextInput(this);  }  });  
});

问题及实现

  • 如果存在 input type=“checkbox” 如何跳过?如果存在 input type=“text” 输入框中存在值,想让光标自动移到数据最后面?
  function focusNextInput(thisInput) {let inputAlls = document.getElementsByTagName("input");let inputs = []for (var i = 0; i < inputAlls.length; i++) {let input = inputAlls[i]; if (input.type === "text" && !input.readOnly) {inputs.push(input)} }// 如果是最后一个,则焦点回到第一个for (var i = 0; i < inputs.length; i++) { if (i == (inputs.length - 1)) {inputs[0].focus(); break;} else if (thisInput == inputs[i]) {let textLength = inputs[i + 1].value.lengthif (textLength > 0) {// 光标自动移到数据最后面inputs[i + 1].selectionStart = textLength;  inputs[i + 1].selectionEnd = textLength;  // 聚焦到该输入框,确保光标可见  inputs[i + 1].focus(); break;} else {inputs[i + 1].focus(); break;}}}}

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

spring多线程实现+合理设置最大线程数和核心线程数

1.最简单的方法&#xff1a; 需要在 Spring Boot 主类上添加 EnableAsync 注解启用异步功能&#xff1b;需要在异步方法上添加 Async 注解。 示例代码如下&#xff1a; SpringBootApplication EnableAsync public class Application {public static void main(String[] args…

什么是DevOps?如何使用DevOps?

无论您是在维持公司基础设施的正常运行&#xff0c;还是在为客户的IT问题管理提供支持&#xff0c;抑或是在构建、测试或修复软件&#xff0c;还是在保护同事免受安全威胁&#xff0c;您都可能接触过 DevOps。 毕竟&#xff0c;这个术语已经出现了 15 年&#xff0c;其采用率也…

C#_泛型_委托

文章目录 泛型泛型的使用泛型的约束委托委托的实例化多播委托委托的调用内置委托类型委托练习泛型委托Lambda表达式(进阶)上期习题答案本期习题 泛型 泛型&#xff08;Generic&#xff09; 是一种规范&#xff0c;它允许我们使用占位符来定义类和方法&#xff0c;编译器会在编…

基于单片机病房呼叫系统数码管显示房号设计

**单片机设计介绍&#xff0c;基于单片机病房呼叫系统数码管显示房号设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机病房呼叫系统数码管显示房号设计概要主要涵盖了利用单片机技术实现病房呼叫系统&#xff0c;并…

工厂数字化看板是什么?部署工厂数字化看板有什么作用?

随着工业4.0时代的来临&#xff0c;数字化转型已成为制造业发展的必然趋势。在这个背景下&#xff0c;工厂数字化看板作为一种高效的信息展示与管理工具&#xff0c;正逐渐受到越来越多企业的青睐。那么&#xff0c;什么是工厂数字化看板&#xff1f;部署工厂数字化看板又有哪些…

2024软件设计师备考讲义——(3)

程序设计语言 一、程序语言基础 1.基本概念 低级语言&#xff1a;机器语言、汇编语言高级语言&#xff1a; Fortran 科学计算&#xff0c;执行效率高Pascal 为教学开发&#xff0c;表达能力强Prolog 逻辑性程序设计语言C语言 指针操作能力强&#xff0c;可以开发系统级软件&a…

vue实现文字一个字一个字的显示(开箱即用)

图示&#xff1a; 核心代码 Vue.prototype.$showHtml function (str, haveCallback null) {let timeFlag let abcStr for (let i 0; i < str.length; i) {(function (i) {timeFlag setTimeout(function () {abcStr str[i]haveCallback(abcStr)if ((i 1) str.length…

JUC:Monitor 与 Java对象头的内容与锁关系

文章目录 Monitorjava对象头Monitor&#xff08;锁、管程&#xff09; Monitor java对象头 普通对象 Mark Word 主要用来存储对象自身的运行时数据、klass word就是指向该对象的类型。 数组对象 mark word 不同对象状态下结构和含义不同。 Monitor&#xff08;锁、管…

JavaEE 初阶篇-深入了解多线程等待与多线程状态

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 线程等待 1.1 线程等待 - join() 方法 1.1.1 main 线程中等待多个线程 1.1.2 main 线程等待 t2 线程且t2 线程等待 t1 线程 1.1.3 其他线程阻塞等待 main 线程 1.…

期货开户要找到适合自己的系统

物有一个生物圈&#xff0c;大鱼吃小鱼&#xff0c;小鱼吃虾。在期货市场这条生物圈里面&#xff0c;大部分人就是期货市场的虾子&#xff0c;是被吃的&#xff0c;所以必须成长起来&#xff0c;往更高一层走&#xff0c;到可以吃虾子的时候&#xff0c;就是挣钱的时候。学习不…

物流监控升级,百递云·API开放平台助力某电商平台实现高效物流管理

不论是电商平台自身还是消费者&#xff0c;都有着对物流监控的强烈需求。 消费者下单后be like: 每十分钟看一次快递轨迹 放心&#xff0c;电商平台也一样关心物流状态&#xff01;怎样第一时间向用户传递物流状态&#xff1f; 怎么减少重复的提问和投诉&#xff1f;怎样监管…

2023年EI会议论文已见刊/检索进展汇总

2023年录用的会议论文已在SPIE、ACM、IEEE等出版社正式上线见刊&#xff0c;并已陆续完成EI Compendex数据库收录&#xff0c;详情如下&#xff1a; EIECT 2023——IEEE出版&#xff0c;并完成EI收录 会议信息&#xff1a; 第三届电子信息工程与计算机技术国际学术会议&…