JS如何为表单聚焦控件设置醒目的样式

生产级前端表单设计:语义化、验证与无障碍实践 表单是Web应用中用户意图结构化表达的核心载体,其本质远超HTML标签组合,涉及语义化标记、分层验证逻辑、实时交互反馈与无障碍可访问性等基础能力。从`<input type="email">`的原生校验优势,到`<label>`与`id`的严格绑定对屏幕阅读器的关键支撑,再到`blur`/`input`/`submit`三阶段验证时机的工程权衡,每一个细节都直接影响用户信任与转化率。现代表单需兼顾数据安全(防手滑+防重提交)、状态可溯(支持草稿与撤回)及国际化适配(RTL、占位符长度、日期格式)。本文基于真 阅读详情

前言

在用户填写表单时,为了让用户集中精力填写或某一个表单控件,可以通过设置此空间的样式来达到目的

那这样的效果如何实现呢,如下示例所示的

示例展示

点击文末左下角阅读原文即可(https://coder.itclan.cn/fontend/js/26-set-form-style/)

ad831e102d46ff192c1e0994728d58ed.png

837eab197fe42530cec2beac0dbbc5a6.png

原生Js实现

7d64c7529a4a1173204afe8d7303edfc.png

3c3a632de2d8cb51736ff1b927407bb7.png

如下是简易的示例代码,要想实现这一个效果,必须要知道onfocus和onblur,前者是聚焦的回调事件,而后者是控件失去焦点的回调

在一个网页里,永远都只能有一个控件获得焦点,因此需要遍历所有的控件,为它们定义相同的onfocus以及onblur的逻辑

当控件获得焦点时,为它设置独特的边框样式,否则就恢复原有的边框样式

function init() {
    var f = document.form[0];  // 获取表单DOM
    var elements = f.elements; // 获取所有的控件数组
    var str = '';              // 拼接字符串
    // 循环遍历
    for(var i = 0;i<elements.length;i++) {
        var e = elements[i];   // 当前的控件
        e.onfocus = function() { // 定义聚焦的样式回调
            // 修改边框的红色
            this.style.border = '1px solid red';
        }
        e.onblur = function() {      // 失去焦点的回调
            this.style.border = '';  // 恢复原有边框样式
        }
    }
}
init();

如下是html模板代码

<form>
    年份
    <select name="myyear">
        <option value="2022">2022</option>
        <option value="2021">2021</option>
        <option value="2020">2020</option>
        <option value="2019">2019</option>
    </select><br />
    <input type="button" value="提交" onclick="showParams()">
</form>

ebb896297fa2eb087ffcdaece387f06a.png

900f92d0a8fcec37712e6c1b6930e68b.png

Vue版本实现

492d568c49304f3d71dd2ae731afa296.png

3bf3d21c7001ad321bd36814c55af950.png

在vue里面是直接在元素上绑定focus与blur事件进行实现的,如下代码所示

<template>
  <div class="wrap">
    <el-form
      status-icon
      label-width="100px"
    >
      <el-form-item>
        名字:
        <input type="text"
          v-model="name"  
          autocomplete="off"
          placeholder="请输入名字"
          @blur="handleInput('blur')"
          @focus="handleInput('focus')"
          :style="style" />
      </el-form-item>
    </el-form>
  </div>
</template>

<script>
export default {
  name: "formStyle",
  data() {
    return {
        name: '',
        style: {
            border: "1px solid #ccc"
        }
    }
  },

  methods: {
    handleInput(type) {
        if(type == 'blur') {
            this.style.border = '1px solid #ccc';
        }else {
            this.style.border = '1px solid red';
        }
    }
  }

};
</script>
<style lang="scss" scoped>
.wrap {
    text-align: center;
    margin: 20px 0 20px 0;
}
</style>

6d316d4d531f9413e95e698343d6ca05.png

08a62fa46ebbc3619e3aa6f7b2eb8e66.png

514ed17dc4a43faac66482a92f6de7c8.png

总结

815bcffd51cd25b3b7d7c7ca4654de5c.png

无论是原生js还是Vue版本实现,都需要使用onblur(input框失去焦点)与onfocus(input框聚焦焦点),实现的核心原理都是相似的,只是在框架里去控制,表现形式有些不一样

Js如何实现当网页超过一屏时导航菜单始终置顶-吸顶盒效果

2023-01-30

2820276abff2d697d9abfed9ca4c164c.jpeg

VueJs中如何使用Teleport组件

2023-01-22

9f637247952a473fd380c89bfbef88d2.jpeg

VueJs中如何使用provide与inject

2023-01-21

6397c6709873072e51e991c786ac472c.jpeg

VueJs中customRef函数的使用

2023-01-20

6586a38aa3a092c1d8f7315a6f8ea0c0.jpeg

vueJs中toRaw与markRaw函数的使用比较

2023-01-19

afe9bfffcac350e31920931559aec6c5.jpeg


105d95ff6723f73ec2b101ff43b36687.jpeg

点击左下角查看更多

55af379e33a355d30850becf8543dbde.gif

泛微E9开发实战:动态设置文本框默认提示信息的交互优化方案 本文详细介绍了在泛微E9流程表单开发中,如何利用`WfForm.setTextFieldEmptyShowContent`接口为文本框动态设置默认提示信息,实现“空时显示,输入即隐”的智能交互。文章深入讲解了核心API的使用、字段ID的正确获取方法,并提供了处理明细表动态新增行等进阶场景的实战方案与避坑指南,旨在优化表单填写体验,降低用户错误率。 阅读详情

相关推荐

Web前端网页设计作业高分指南:从HTML/CSS/JS到响应式与性能优化

Web前端开发的核心在于将HTML、CSS和JavaScript三项基石技术有机结合,构建出视觉美观、交互流畅且性能优异的网页应用。其基本原理是通过HTML定义内容结构,CSS控制样式与布局,JavaScript实现动态交互与数据处理。掌握这些技术不仅能实现静态页面展示,更能创造出适配多端设备的响应式网站,提升用户体验与开发效率。在实际工程实践中,合理运用Flexbox、Grid等现代布局方案,并结合性能优化技巧,是构建高质量前端项目的关键。本文以常见的“网页设计作业”为具体场景,深入探讨如何系统性地应用这

Liusuzhi19610221的博客 398

【CSS 18】HTML表单优化 输入字段样式 输入框填充 边框美化 彩色输入框 获得焦点 图标与图像 动画效果 transition属性 文本域样式 select选择菜单 输入按钮 响应式

HTML表单优化 输入字段样式 输入框填充 边框美化 彩色输入框 获得焦点 图标与图像 动画效果 transition属性 文本域样式 select选择菜单 输入按钮 响应式 input[type=password] - 将仅选择密码字段。- input[type=number] - 将仅选择数字字段。- input[type=text] - 将仅选择文本字段。如果仅需要下边框,请使用 border-bottom 属性。使用 padding 属性在文本字段内添加空间。

Zane Boy's blogs 3093

医疗管理系统界面设计:从业务场景到技术实现的实践指南

在软件开发领域,用户体验设计与业务逻辑的深度融合是构建高效、可靠系统的关键。其核心原理在于通过深入理解用户角色、工作流程和业务目标,将复杂的功能转化为直观、易用的界面。这种设计方法的技术价值在于能显著提升操作效率、降低错误率,并增强系统的整体可用性。在医疗信息化等专业应用场景中,这一点尤为重要,因为界面直接关系到诊疗效率和患者安全。本文聚焦于医疗管理系统,深入探讨如何将临床诊疗流程、护理协同、药剂管理等核心业务场景与信息架构、视觉规范及前端技术选型紧密结合。通过剖析以临床为中心的设计思维、模块化导航策略以及

weixin_30784501的博客 399

文本框(input)获取焦点(onfocus)时样式改变的实现方法

许多重视用户体验的设计师都希望给文本框(input)加上获取焦点或者鼠标悬停时的样式切换效果。其实很简单,我们只需要获取页面上的文本框,加上onfocus事件或者其他对应的事件即可。本文介绍了如何在获取焦点时切换样式,明白原理后,实现其他效果就很简单了。--------------------------------------------------------------J

hjjk123的专栏 2723

Open UI5 源代码解析之987:Title.js

摘要: sap.m.Title 是 OpenUI5 框架中的核心标题控件,远非简单的文本显示组件。它通过继承 Control 实现完整控件能力,兼具语义层级(level)、视觉样式(titleStyle)和排版控制(换行/断词)。其设计亮点包括: 多源标题整合:支持直接文本、外部关联(sap.ui.core.Title)或复杂内容聚合(content),适应不同场景需求; 语义与视觉分离:独立控制标题的语义级别(如无障碍阅读的 H1)与视觉表现(如大号字体); 企业级特性:内置 RTL 支持、长文本处理(自

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 735

js 特效 html 特效 输入框聚焦技巧

js 特效 html 特效 输入框聚焦技巧 js 特效 html 特效 输入框聚焦技巧

el-form表单实现点击上下左右方向键移动聚焦

el-form表单元素实现上下左右箭头移动聚焦

Is_Xiao_Gu的博客 1669

别再手动查日志了!用Dify+Zabbix打造你的专属运维“嘴替”(保姆级配置流程)

本文详细介绍了如何利用Dify平台与Zabbix监控系统集成,构建智能运维对话系统,实现自然语言交互的运维管理。通过保姆级配置流程,帮助运维工程师提升查询效率、降低学习成本,打造企业级智能运维解决方案。

weixin_27298377的博客 455

JavaScript------常用的输入(input)聚焦方法

输入聚焦方法:通过设置焦点使用户能够在上进行操作。聚焦:通过将用户的光标定位到输入字段上,以便用户可以直接在该字段中输入内容或执行其他操作。

cmHuney的博客 7939

基于航位推算与多传感器融合的高精度避障小车设计

航位推算(Dead Reckoning)是一种在无外部定位信号下通过里程计与惯性测量单元(IMU)持续积分估计位姿的基础导航方法,其核心在于运动学建模、误差累积抑制与多源数据融合。该技术具备低依赖、高实时、强确定性等工程优势,广泛应用于服务机器人、AGV、竞赛无人平台等受限环境下的自主导航系统。结合编码器高分辨率测距与九轴IMU姿态解算,可显著抑制纯里程计漂移,提升短时定位精度至厘米级。本文以全国大学生电子设计竞赛K题为背景,深入实现了一种面向确定性场地的离线建图+航位推算双模协同架构,重点解决嵌入式资源约

weixin_36328210的博客 81

Mac用户必看:Typora最新版永久激活+弹窗屏蔽保姆级教程(附崩溃解决方案)

本文为Mac用户提供了一份详尽的Typora最新版永久激活与弹窗屏蔽教程。通过修改关键JS文件,实现软件激活状态并彻底关闭成功提示弹窗。文章深入剖析了操作原理,并重点提供了解决由此引发的多文档崩溃问题的实用临时方案,同时客观讨论了该方法的局限性与潜在风险。

wine的专栏 2334

模仿京东输入内容案例

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Do

Jessicawh的博客 598

深度学习中的注意力机制

最近两年,注意力模型(Attention Model)被广泛使用在自然语言处理、图像识别及语音识别等各种不同类型的深度学习任务中,是深度学习技术中最值得关注与深入了解的核心技术之一。本文以机器翻译为例,深入浅出地介绍了深度学习中注意力机制的原理及关键计算机制,同时也抽象出其本质思想,并介绍了注意力模型在图像及语音等领域的典型应用场景。

优快云人工智能 4万+

JavaScript之简单网页特效表单篇

1、遍历表单的所有控件2、修改控件的值和获取文本框的个数3、通过控件名访问特定的控件4、修改表单的提交方法5、动态选择聚焦的控件和重置6、隐藏和显示密码7、批量为所有的表单控件加一个说明8、设置下拉菜单的值9、使用隐藏控件为表单添加参数10、勾选全部复选框11、为表单的聚焦控件设置醒目的样式...

笺赕 533

Unity 之如何使用Pico4u锚点功能实现一个世界锁GameRoot

摘要 空间锚点技术是混合现实(MR)应用的核心,能永久记录虚拟物体的空间位置。文章介绍了在Unity中使用Pico SDK实现空间锚点的完整流程:1)环境配置需安装XR模块和Pico SDK;2)关键操作包括启动空间感知、创建/删除/查询/更新锚点;3)提供了经典应用案例,通过GameRoot节点实现场景固定和锚点同步。源码展示了基于XR交互工具包的锚点抓取与位置更新实现,为MR开发提供了实用参考方案。

TxNet 971

脉冲变压器电感选型参数,结构原理,工艺与注意问题总结

脉冲变压器电感简称脉冲变压器,是一种特殊类型的变压器,主要用于处理脉冲信号。它的主要特性是能够在短时间内承受高电压和大电流。脉冲变压器主要用于开关电源、脉冲功率放大、雷达脉冲调制等领域。本文对脉冲变压器的工作原理,结构特点,工艺流程,选型参数及设计注意事项进行总结。

fydar的博客 1340

HTML 表单学习笔记

核心作用:收集用户输入数据并提交到服务器组成元素:输入框、按钮、选择框等交互控件数据流向:用户填写 → 客户端 → 服务器端处理。

Rey_family的博客 804

【系统分析师】高分论文:论软件开发方法及应用(数据中心CMDB 系统)

【摘要】本文以作者负责的"数据中心CMDB系统"建设项目为例,探讨了系统分析和建模方法在IT项目中的应用实践。项目基于ITIL框架,旨在整合分散的配置信息,构建统一CMDB平台。通过分析结构化、面向对象和构件化三种开发方法特点,项目最终采用结构化分析与V模型结合的方式,并融入面向对象设计理念。系统经过4个月开发后上线,通过增量迭代满足不同数据源接口需求,采用适配器模式提高兼容性。经过2个月试点运行和优化,系统已稳定运行并获得用户认可,为后续IT服务管理集成奠定了基础。项目实施使作者积累了

数据知道的博客 4298

CSS body样式重置与继承控制:从默认陷阱到生产级实践

body元素是网页视觉渲染的根容器,其默认样式由浏览器硬编码,存在跨浏览器不一致、继承污染和性能隐患等底层问题。理解CSS继承机制、浏览器用户代理样式表及层叠规则,是实现高保真UI还原与可访问性设计的前提。通过精准重置margin/padding、构建健壮字体栈、合理使用CSS变量与background-image策略,可建立稳定可控的全局样式基线。本文聚焦body层级的样式治理,涵盖重置方案、继承链优化、背景性能调优及深色模式适配等工程实践要点,适用于前端开发、UI还原交付与无障碍合规场景。

weixin_30765577的博客 443

windows 10 等保3级配置核查与加固(附自动化加固脚本)

关闭注册表编辑器,然后重新启动计算机。\\r\\n 对于OPC通讯站(server\\\\client),【密码最长存留期】需要设置为0,即密码不过期。‌445端口‌:修改注册表禁用。打开命令提示符,运行命令“gpedit.msc”打开组策略编辑器,浏览到路径“本地计算机策略\\\\计算机配置\\\\Windows设置\\\\安全设置\\\\本地策略\\\\安全选项”,在右边窗格中找到“Microsoft网络客户端:将未加密的密码发送到第三方SMB服务器”,双击,配置为“已禁用”,确定。

悦分享 160

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

基于HarmonyOS API 24,React Native鸿蒙跨平台代码急助手应用聚焦维修工具、应急用品、即时配送、生活服务场景,覆盖商品展示、库存校验、购物车操作等完整应急消费链路

使用枚举类型:将商品分类、紧急程度等使用枚举类型替代字符串,提高代码可读性和可维护性类型扩展:考虑使用接口继承,增强类型系统的表达能力类型守卫:添加更多类型守卫,确保运行时类型安全国际化支持:考虑添加国际化支持,特别是商品分类等术语。

2401_86113894的博客 206

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Flask新手注册系统:从零实现用户注册与密码安全存储

Web注册功能是后端开发的入门核心场景,涉及HTTP请求处理、表单数据解析、数据库持久化及密码安全防护等基础能力。其底层原理基于GET/POST方法语义区分、request.form参数解析、SQLite轻量级存储与bcrypt加盐哈希机制,技术价值在于以最小依赖(Flask+bcrypt+sqlite3)构建可运行、可调试、可验证的闭环流程。典型应用场景包括学习型项目、MVP原型验证和教学实践,尤其适合Python基础扎实但缺乏Web开发经验的新手。本文聚焦‘极简注册动线’,完整呈现从HTML表单提交、F

ozzzzzz的专栏 540

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

TDesign小程序组件库实战:从零搭建高效开发环境

本文详细介绍了如何从零开始搭建基于TDesign小程序组件库的高效开发环境。内容涵盖环境准备、项目创建、组件库的安装与引入方式,并通过实战演示了首个组件的使用。文章还深入探讨了样式定制技巧与常见问题排查,帮助开发者快速上手并利用TDesign的统一设计体系,提升微信小程序的开发效率与界面一致性。

gpt4scribbler的博客 184

Flutter for OpenHarmony 实战:HarmonyOS ArkTS API 24 体重变化图表​ - 记录体重变化

体重图表的核心绘制逻辑封装在 WeightChartPainter 类中,该类继承自 CustomPainter,通过重写 paint 方法实现自定义绘制。绘制的第一步是获取体重的最小值和最大值,并计算体重范围。如果所有记录的体重都相同(范围为0),则将范围设为1以避免除零错误。接下来是坐标点的计算。x 坐标:根据索引在总记录数中的比例计算水平位置,左右各留 20 像素边距。

2301_79516858的博客 386

基于React Native鸿蒙跨平台基于urgency属性的高紧急度应急商品筛选,HarmonyOS API 24,用于展示核心应急推荐商品

使用枚举类型:将商品分类、紧急程度等使用枚举类型替代字符串,提高代码可读性和可维护性类型扩展:考虑使用接口继承,增强类型系统的表达能力类型守卫:添加更多类型守卫,确保运行时类型安全国际化支持:考虑添加国际化支持,特别是商品分类等术语。

2401_86113894的博客 100

模板驱动文档自动化:零代码实现动态文档批量生成

文档自动化是企业提升内容生产效率的关键技术路径,其核心在于将重复性文档工作从人工操作升级为结构化、可复用的模板流程。基于模板驱动(Template-Driven)原理,系统通过智能占位符、条件逻辑与多源数据绑定,实现内容动态注入与格式精准控制,相比传统邮件合并或AI生成更可靠、更可控。该技术显著降低人为错误率,支持销售提案、合同、报告等高频标准化文档的秒级生成,并天然适配合规审计、跨系统集成与业务人员自助维护等工程实践需求。本文聚焦Sqribble平台落地经验,详解模板设计、数据柔性接入与PDF稳定导出等关

weixin_33674976的博客 362
上一篇: Js如何实现当网页超过一屏时导航菜单始终置顶-吸顶盒效果
下一篇: JS如何实现勾选全部复选框和不全选复选框
itclanCoder
博客等级 码龄10年 1481粉丝 434原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值